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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2017, 20:10   #11
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
void для параметров писать не надо, это не С
массив указателей не инициализирован
деструктор в базовом не виртуальный
правильная инициализация?

A* mas_A[]={new B,new C};
manchester_alan вне форума Ответить с цитированием
Старый 15.04.2017, 20:15   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Компилируется? Работает? Не падает?.. Значит правильно.

И удаление допишите перед выходом из программы.
p51x вне форума Ответить с цитированием
Старый 15.04.2017, 20:42   #13
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Компилируется? Работает? Не падает?.. Значит правильно.

И удаление допишите перед выходом из программы.
Так-то запускается, но выводит как-то неправильно.. Выводит функции производных классов не по очереди по циклу, а сразу одновременно

Код:
B bb; C cc;

  for(int i=0;i<2;i++)
  {
	  mas_A[i]->Abstr();
  }
  bb.~B();
  cc.~C();
manchester_alan вне форума Ответить с цитированием
Старый 15.04.2017, 20:50   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это как? Чем "одновременно" отличается от "по очереди"?

И деструктор не надо самому вызывать, delete.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.04.2017, 21:07   #15
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

А понял в чем дело.

Код:
A* mas_A[]={new B,new C};
здесь он выводит в консоле содержимое В и С, и только потом выводит Abstr в цикле...
manchester_alan вне форума Ответить с цитированием
Старый 15.04.2017, 22:07   #16
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
здесь он выводит в консоле содержимое В и С
тут ничего не выводится или вы о чем-то своем?

Цитата:
и только потом выводит Abstr в цикле
не выводит, а вызывает
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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