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