Форум программистов, компьютерный форум CyberForum.ru

Функция абстрактного базового класса - C++

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.01.2014, 09:26     Функция абстрактного базового класса #1
Есть абстрактный класс, пусть его зовут A, а у него есть 4 потомка, пусть их зовут: B, C, D и F. Функция должна возвращать экземпляры потомков. Можно ли декларировать её, как возвращающую экземпляр базового класса?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
07.01.2014, 10:21     Функция абстрактного базового класса #2
Цитата Сообщение от taras atavin Посмотреть сообщение
Можно ли декларировать её, как возвращающую экземпляр базового класса?
Нет, только как указатель/ссылку на базовый класс.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.01.2014, 10:25  [ТС]     Функция абстрактного базового класса #3
По ссылке вернуть можно? А на что?
C++
1
2
3
4
5
6
7
8
9
10
11
12
A &f(...)
{
 B b;
 C c;
 D d;
 E e;
 ...
 if (...)
 {
  return e;
 }
}
? Как то воняет возвратом ссылки на временный объект. И static нельзя.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
07.01.2014, 12:06     Функция абстрактного базового класса #4
умный указатель на родительский класс
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.01.2014, 12:08  [ТС]     Функция абстрактного базового класса #5
Расскажите, что это и с чем его едят.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
07.01.2014, 12:13     Функция абстрактного базового класса #6
http://habrahabr.ru/post/140222/
Yandex
Объявления
07.01.2014, 12:13     Функция абстрактного базового класса
Ответ Создать тему
Опции темы

Текущее время: 13:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru