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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2017, 19:50   #1
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию Классы

Написать программу, реализующую обработку данных двух типов, объявленных на основе общего базового класса. Элементы данных обоих типов должны размещаться в одном массиве – массиве указателей базового класса.

Приведите пример, как это реализовать, пожалуйста..
manchester_alan вне форума Ответить с цитированием
Старый 13.04.2017, 20:26   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы не поверите, но все абсолюьно так, как вам и написали в условии.

класс Базовый
класс Производный1 : Базовый
класс Производный2 : Базовый

массив Базовый* Массив;

что-то делаем со всеми элементами в массиве.
p51x вне форума Ответить с цитированием
Старый 14.04.2017, 20:10   #3
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Спасибо, но..

Цитата:
Сообщение от manchester_alan Посмотреть сообщение
реализующую обработку данных двух типов, объявленных на основе общего базового класса
Вот это мне не очень понятно...
manchester_alan вне форума Ответить с цитированием
Старый 14.04.2017, 20:17   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А что не понятно? Прочитайте главу в книжке про виртуальные функции. Напишите и в цикле по массиву взовите.
p51x вне форума Ответить с цитированием
Старый 14.04.2017, 20:22   #5
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

То есть эти 2 типа объявить как переменные, которые реализовываются в функциях?
manchester_alan вне форума Ответить с цитированием
Старый 14.04.2017, 20:42   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Где вы это увидели в моих постах? У вас массив из этип типов вперемешку должен быть (реализованный через указатели на базовый).
p51x вне форума Ответить с цитированием
Старый 14.04.2017, 20:56   #7
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Что подразумевается под типами?(
manchester_alan вне форума Ответить с цитированием
Старый 15.04.2017, 05:47   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

То же, что и в языке: int, char, std::vector, MyClass, MySuperClass, ...
p51x вне форума Ответить с цитированием
Старый 15.04.2017, 16:53   #9
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
. Напишите и в цикле по массиву взовите.
Код:
class A
{
public:
	A(void){}

	virtual void Abstr(void)=0;

	~A(){}
};

class B :public A
{
public:
	B(void){}

	void Abstr(void)
	{}

	~B(){} 
};

class C :public A
{
public:
	C(void){}

	void Abstr(void)
	{}

	~C(){}
};

A* mas_A[5];

int main ()
{
  for(int i=0;i<5;i++)
  {
	  mas_A[i]->Abstr();
  }

  system("pause");

  return 0;
}
ЧТо здесь может быть неправильным?
manchester_alan вне форума Ответить с цитированием
Старый 15.04.2017, 16:58   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

void для параметров писать не надо, это не С
массив указателей не инициализирован
деструктор в базовом не виртуальный
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы в C++ Etete Помощь студентам 0 21.05.2012 21:36
ld и классы nowaalex Общие вопросы C/C++ 12 03.09.2010 20:45