c ++模板类的调用方法

时间:2016-03-09 16:19:39

标签: c++ template-classes

我已经创建了一个初始化它的模板类。 现在我想从这个类中调用一个方法,但是我得到了一个编译器错误。

(使用函数TemporaryFunctionForSimulator我成功地将模板类拆分为* .h和* .cpp。 所以这不是问题!)

错误:在'simulator'中请求成员'addEvent',这是非类型'Simulator *()'

Simulator.h

#ifndef SIMULATOR_H
#define SIMULATOR_H

#include<queue>
#include<Event.h>

template<class T>
class Simulator
{
    public:
        void addEvent(T t);

        Simulator();
        virtual ~Simulator();
    protected:
    private:

};

#endif // SIMULATOR_H

Simulator.cpp

#include "Simulator.h"

#include <functional>
#include <queue>
#include <vector>
#include <iostream>

using namespace std;

template<class T>
Simulator<T>::Simulator()
{
}
template<class T>
Simulator<T>::~Simulator()
{
    //dtor
}
template<class T>
void Simulator<T>::addEvent(T t)
{
    //do something
}

// No need to call this TemporaryFunction() function,
// it's just to avoid link error.
void TemporaryFunctionForSimulator()
{
    Simulator<int> TempObj();
}

的main.cpp

    Simulator<int> *simulator();
    int t = 5;
    simulator->addEvent(t); //error: request for member ‘addEvent’ in ‘simulator’, which is of non-class type ‘Simulator<int>*()’

0 个答案:

没有答案