5
template <class T>
class baseclass{
protected:
T data;
public:
baseclass(){};
void setData(T d);
};
template<class T>
void baseclass<T>::setT(T d){
data = d;
}
上面显示的是我的基类,一个受保护的成员变量,一个setter。简单模板继承问题C++
template <class T>
class aclass : public baseclass<T>
{
public:
aclass(T d);
};
template<class T>
aclass<T>::aclass(T d){
setData(d); <---WORKS
data = d; <---DOESN'T WORK
}
现在这是我的第一个子类。出于某种原因,直接访问受保护的成员变量不起作用,尽管我相信它应该。但是,访问setter工作正常。我是C++的noob,我确定我错过了一些明显的东西。
如果你写这个 - > data = d ;? – 2011-02-10 06:28:01
您能否更具体地表示“不起作用”?你是否得到了一个编译器错误(如果是这样,哪一个),或者它在运行时什么都不做? – 2011-02-10 06:30:38