Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2010, 20:02   #1
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию Как создать вид подобный SolidWorks.

В идеале стремлюсь создать вид у приложения как в SolidWorks.
Что требуется:
1. Создать массив обьектов класса CShape::CObject, CShape имеет конструктор CShape(BYTE bKind). С шаблоном CList<CShape, CShape&> не получается, скорее всего нужен конструктор без параметров, но это не нужно мне.
2....6. Об остальных пунктах пока не думал.

Прошу Вашей помощи, спасибо, Алексей.
KemanSR вне форума Ответить с цитированием
Старый 03.05.2010, 21:21   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Цитата:
Создать массив обьектов класса CShape::CObject
Код:
CShape::CObject *cobj = new CShape::CObject[ SIZE ];
.....
delete [] cobj;
NiCola999 вне форума Ответить с цитированием
Старый 04.05.2010, 19:48   #3
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
Код:
CShape::CObject *cobj = new CShape::CObject[ SIZE ];
.....
delete [] cobj;
1. Но CObject не является членом CShape.
2. Если так:
Код:
CShape *cobj = new CShape[ SIZE ];
то конструктор
Код:
CShape(BYTE bKind);
тоже не даст создать массив.
3. Самое главное мне нужен массив с динамически изменяемым размером,
хотелось бы использовать шаблоны(CTypedPtrList, CList или что-то подобное.
В голову приходит что-то такое:
Код:
CTypedPrtList<CObjList, CShape> m_lShapes;
CShape M9(9);
M9.Draw(&m_memDC, ptCenter, m_fltScaleFac);
m_lShapes.AddHead(M9);
но такое не работает.
Прошу помощи.
KemanSR вне форума Ответить с цитированием
Старый 04.05.2010, 20:17   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Цитата:
CShape *cobj = new CShape[ SIZE ];

то конструктор
Код:

CShape(BYTE bKind);

тоже не даст создать массив.
это еще почему? У CShape только один конструктор чтоли? Должен быть конструктор по умолчанию, который вызовется для i-того элемента массива. Я с MFC не знаком, но тут и так понятно
NiCola999 вне форума Ответить с цитированием
Старый 04.05.2010, 20:17   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

CShape такой-же класс как и все остальные и у него должен быть конструктор по умолчанию. А там уже тебе решать что ты хочешь создать массив или вектор из элементов этого класса

если тебе не нужен конструктор по умолчанию, то что мешает вызвать нужный конструктор при создании вектора или массива ?

Последний раз редактировалось NiCola999; 04.05.2010 в 20:22.
NiCola999 вне форума Ответить с цитированием
Старый 04.05.2010, 20:34   #6
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

А насчёт шаблонов - некак?
KemanSR вне форума Ответить с цитированием
Старый 04.05.2010, 21:30   #7
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
vector<CShape> shapes;
shape.push_back(CShape(kind) );
аналогично любой другой контейнер
NiCola999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как определить вид мыши vixiv Общие вопросы Delphi 3 08.02.2009 12:45
SolidWorks API на русском Stilet Свободное общение 5 03.07.2008 14:16
Люди, плиз. Как создать простейшую 2-D игру, вид сбоку? NNN Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 27.04.2008 14:51