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

Клонирование объекта шаблонного класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа управления проектором Nec моделей VT60, VT70, VT80, VT90, VT700, LT170 по порту Rs232 http://www.cyberforum.ru/cpp/thread582387.html
Помогите написать программку на С++ или ассемблере, которая посылала бы простейшие команды на проектор, уже неделю пытаюсь разобраться, никак толком не выйдет(((. есть мануалка с командами
C++ Переполнение буфера: что тут происходит? Добрый вечер; у меня есть уязвимая программа, которая в буфер длиной 30 копирует строку, переданную как аргумент этой программе. Делал по этой статье. Задача - осуществить вызов командной строки. В... http://www.cyberforum.ru/cpp/thread581764.html
C++ inline assembler VS чтение по указателю
Доброе время суток. Задача состоит в чтении 1 байта по адресу указателя. Проблема с пониманием, что не так с типами операндов. char readFromPointer(char* pointer) { char result; __asm mov...
C++ Внутренняя организация базы данных
Нужно написать небольшую консольную бд на с++, хотел бы посмотреть реальные примеры. Подкиньте парочку посмотреть пожалуйста :) В инете конечно полно примеров БД на visual c++ (mfc например), но там...
C++ Как добавить смещение в программу в формате exe http://www.cyberforum.ru/cpp/thread578554.html
хотелось узнать возможно добавить смещение в программу, тоесть к примеру есть код в программе от 0х1 до 0х100 можно ли как нибудь создать адресс к примеру 0х125 и вписать туда какое то значение???...
C++ Программа для скачивания файлов используя прокси Здравствуйте! Пробую написать программу которая качает некие заданные файлы с интернета, но при этом использует соединение через прокси. Подскажите как "обьяснить" программе чтоб она качала через... подробнее

Показать сообщение отдельно
Bers
Заблокирован

Клонирование объекта шаблонного класса - C++

25.05.2012, 04:54. Просмотров 1001. Ответов 2
Метки (Все метки)

Задача ниже представленного механизма - запоминать функции/методы со всеми аргументами, и производить их отложенный запуск по требованию

В ниже представленном коде нужно организовать возможность объекту откопировать себя в динамической памяти, и вернуть указатель.

Для этого использовались два подхода:
1. Копирующий конструктор (способ сработал, и проблем нет).

2. Конструктор с параметрами (способ не сработал).

Требуется: понять причину поломки во втором случае.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//------------------------
template<class T1, class T2=SEmpty>
class TLauncher: public ILauncher_t
{
public:
    typedef typename TMetaProgramm<T1,T2>::Strategy_t Executer_t;
    typedef typename TMetaProgramm<T1,T2>::Function_t Function_t;
    typedef typename TMetaProgramm<T1,T2>::Client_t Client_t;
    typedef typename TMetaProgramm<T1,T2>::Arg_t Arg_t;
 
    friend Executer_t;
public:
    virtual ~TLauncher() { std::cout<<"Dtor\n"; }
public:
    TLauncher(Client_t* pObj, Function_t func, Arg_t& arg)
        :mClient(pObj), mFunc(func), mArg(arg){}
 
    TLauncher(Function_t func, Arg_t& arg)
        :mClient(0l), mFunc(func), mArg(arg){}
public:
    virtual float Execute(const float seconds) { return Executer_t::Execute(*this); }
 
    virtual ILauncher_t* Copy()const      
    {
          //return new TLauncher(*this); //с этим методом все в порядке
        
          //: error C2143: синтаксическая ошибка: отсутствие ";" перед "template"
          return new TLauncher(mClient,mFunc,mArg); 
    }
    
    virtual bool IsFinished(void) const        { return true; }
    virtual void Accept(Commands::Core::Inspector& inspector){}
protected:
    Client_t* mClient;
    Function_t mFunc;
    Arg_t mArg;
};
Кто нибудь знает, из-за чего это может быть?

Добавлено через 19 минут
На всякий случай привожу полный текст ошибки:

1>d:\1command3\1command3\execute.h(163) : error C2143: синтаксическая ошибка: отсутствие ";" перед "template"
1>d:\1command3\1command3\bazisconsole.cpp(82) : fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка '{' в "d:\1command3\1command3\execute.h(16)"

Добавлено через 8 часов 11 минут
Если кому нибудь интересно - проблема была решена путем переустановки вижал студии.
Сами по себе оба способа корректны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru