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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2013, 13:14   #1
xe3
Пользователь
 
Аватар для xe3
 
Регистрация: 11.12.2012
Сообщений: 29
Плохо Массивы и производные классы. Есть решение?

Допустим есть два класса

Код:
class СParent
{
///bla bla
};

class СChild: public parent
{
/// bla bla
}
классы - разного размера... Хочется упаковать их в массив, инициализированный либо одним, либо другим, вперемешку... Ну и иметь доступ к соответствующим экземплярам виртуальных функций...

простой подход не работает, например:

Код:
CParent* array= new CChild[10];
дает ошибку на втором элементе, но это и понятно, размеры то элементов разные...

Подскажите тупому стандартный подход к решению такой проблемы... Напрашивается написание собственного класса массива для этого
класса с хранением в массиве пойнтеров на классы. Но может быть можно изящнее?

Спасибо!
xe3 вне форума Ответить с цитированием
Старый 23.09.2013, 13:38   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

xe3

Хочется упаковать их в массив, инициализированный либо одним, либо другим, вперемешку... Ну и иметь доступ к соответствующим экземплярам виртуальных функций...

Код:
class CParent
{
public:
   virtual ~CParent() {};
};

class CChild : public CParent
{
public:
};

CParent* arr = new CChild[10];
Rififi вне форума Ответить с цитированием
Старый 23.09.2013, 15:13   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от xe3 Посмотреть сообщение
Подскажите тупому стандартный подход к решению такой проблемы... Напрашивается написание собственного класса массива для этого класса с хранением в массиве пойнтеров на классы.
Увы, проблема решается только массивом указателей, для чего собственно не нужно писать свой класс массива - обычно готовые имплементации позволяют это сделать.
waleri вне форума Ответить с цитированием
Старый 23.09.2013, 15:46   #4
xe3
Пользователь
 
Аватар для xe3
 
Регистрация: 11.12.2012
Сообщений: 29
По умолчанию

Rififi
Увы... Не работает...

Последний раз редактировалось xe3; 23.09.2013 в 15:50.
xe3 вне форума Ответить с цитированием
Старый 23.09.2013, 20:00   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

xe3

Увы... Не работает...

У тебя какой-то палёный C++, видимо, китайская подделка.
Используй только качественный, оригинальный C++ - там всё работает.
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Производные классы С# Sergey_gorobets Помощь студентам 12 31.03.2013 13:37
Массив указателей на производные классы number0ne Общие вопросы C/C++ 10 17.06.2012 21:32
производные классы missg C++ Builder 15 10.04.2012 18:16
класс employee и производные классы olik83 Общие вопросы C/C++ 7 21.09.2009 22:44
С++ Производные классы (Ошибка) Sweta Помощь студентам 9 23.04.2008 12:58