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

Шаблоны изменение типа - C++

Восстановить пароль Регистрация
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
18.10.2013, 20:44     Шаблоны изменение типа #1
Передо мной стоит такая задача:

C++
1
2
3
4
5
6
7
8
9
class par1;
class par2;
class par3;
 
class MyClass  //Основной класс
{
public:
     ТИП parent;      
};
Есть у меня основной класс MyClass, у которого есть параметр-родитель. А качестве параметра я могу поставить любой экземпляр класса из par1, par2, par3.

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

Буду очень благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 20:44     Шаблоны изменение типа
Посмотрите здесь:

C++ не удаётся создать безымянный объект типа vector моего типа
C++ В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!
Изменение типа C++
C++ Шаблоны, наследование и размер типа
C++ Запись информации из вектора типа string в вектор типа double
Аргумент типа WCHAR* не совместим с параметром типа const char* C++
Подстановка типа\шаблоны с++ C++
Можно ли присвоить объекту основного типа значение объекта пользовательского типа? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
18.10.2013, 21:18     Шаблоны изменение типа #2
Цитата Сообщение от Egor138 Посмотреть сообщение
менять тип.
Сам тип поменять во время выполнения нельзя; можно добавить par1, par2, par3 общего предка с необходимыми виртуальными методами и в MyClass хранить указатель на него; либо что-нибудь вроде union (или например boost::variant<par1, par2, par3>).
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
18.10.2013, 21:31     Шаблоны изменение типа #3
Цитата Сообщение от Egor138 Посмотреть сообщение
Для решения данной задачи отлично подошли бы шаблоны
В каком это месте?
ИМХО эта задача не на шаблоны. Здесь скорее подойдёт наследование и полиморфизм.
C++
1
2
3
4
5
6
7
8
9
10
class base{};
class derived1:public base{};
class derived2:public base{};
class derived3:public base{};
 
class MyClass  //Основной класс
{
public:
     base* parent;      
};
Yandex
Объявления
18.10.2013, 21:31     Шаблоны изменение типа
Ответ Создать тему
Опции темы

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