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

Создать копию объекта производного класса зная указатель на базовый - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод программы на С++ с Паскаля http://www.cyberforum.ru/cpp-beginners/thread424970.html
var sn,s:string; l,k,kod:integer; v,p:real; begin writeln('Введите строку'); readln(s); l:=length(s); p:=1; k:=1; repeat sn:='';
C++ Абстрактный класс вот у меня есть классы: class CCommand { public: virtual ~CCommand() {}; virtual void execute(CShape *selection)=0; virtual void unexecute()=0; virtual CCommand* clone()=0; }; http://www.cyberforum.ru/cpp-beginners/thread424964.html
Задачник по C/C++ C++
Здравствуйте! Ребята, может кто посоветует хорошую книгу с задачами, и желательно с решениями к ним по С/С++ ? Буду очень благодарен!;)
C++ Возведение в степень по модулю для чисел близких к max long long
Даны числа A,B,C<=2^63-1 Надо посчитать A^B mod С. прошу не выкладывать стандартный алгоритм для Int, так как неверный ответ в итоге получается.
C++ как определить число в строке? http://www.cyberforum.ru/cpp-beginners/thread424953.html
У меня по задаче сказанно ввести строку и найти произведение входящих в строку чисел, не могу понять как определить числа, поскольку интернет весь облазил и полезного мало.
C++ Все та же ошибка error C2447 Всем привет!При компиляции,компилятор высвечивает мне "error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)", в 17-ой строчке.Я по учебнику попытался написать программу с использованием аргументов переменных функции main,но в итоге не знаю как исправить эту ошибку.Буду благодарен за помощь! Код: #include "stdafx.h" #include <iostream> using... подробнее

Показать сообщение отдельно
KAlexey
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 7
09.01.2012, 15:44  [ТС]     Создать копию объекта производного класса зная указатель на базовый
Спасибо Можно конечно перенести clone во внутрь классов, но мой вариант интересует чисто из позновательных целей, на понимание. Представим что в моей реализации мы сделаем Clone шаблонным, чтобы в него попадали различные указатели на разные базовые классы, что то типа

C++
1
2
3
4
5
6
7
8
template <class T>
void clone(T pBase)
{
  cout<<"clone object"<<endl;
  if (Derived1 *p=dynamic_cast<Derived1*>(pBase)) new Derived1(*p) ;
  if (Derived2 *p=dynamic_cast<Derived2*>(pBase)) new Derived2(*p) ;
  ...
}
естественно, что все производные классы я не перечислю, это помоему зло. при этом если вызвать
например typeid(*pBase).name() метод запросто покажет какого типа наш объект. Вот это и смущает
Думал может есть вариант чтото типа на лету динамически определить одной строкой тип объекта и создать его, ну чтото аля new typeid(*T)
 
Текущее время: 02:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru