template <class T>
class MyTemp
{
public:
MyTemp<T>(){};
~MyTemp<T>(){};
int getint(); ------只有声明,没有实现体啊!
};从代码来看,你的意图应是实现多态性,如果是,不要用类模板,类模板只是作容器用途。可以改为:class MyTemp
{
public:
MyTemp<T>(){};
~MyTemp<T>(){};
virtual int getint() = 0;
};class MyClass1 :public MyTemp
{
public:
virtual int getint(){return 11;};
};class MyClass2:MyTemp
{
public:
public int getint(){return 12;};
};
class MyTemp
{
public:
MyTemp<T>(){};
~MyTemp<T>(){};
int getint(); ------只有声明,没有实现体啊!
};从代码来看,你的意图应是实现多态性,如果是,不要用类模板,类模板只是作容器用途。可以改为:class MyTemp
{
public:
MyTemp<T>(){};
~MyTemp<T>(){};
virtual int getint() = 0;
};class MyClass1 :public MyTemp
{
public:
virtual int getint(){return 11;};
};class MyClass2:MyTemp
{
public:
public int getint(){return 12;};
};
class MyTemp :public BASE_CLASS
{
public:
MyTemp(){};
~MyTemp(){};
//int getint(); 这一句一定要删掉,不然要出错,原因在于没有实现,要是你用int getint(); {return 1;}则显示1,1不是所要实现的多态
};