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;
}
上記は私の基本クラス、保護されたメンバ変数1つ、セッタ1つです。シンプルなテンプレート継承の問題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
}
これは最初のサブクラスです。何らかの理由で、保護されたメンバ変数に直接アクセスすることはできません。しかし、セッターへのアクセスは正常に動作します。私はC + +のノブです、私は何かが明らかに欠けていると確信しています。
this-> data = d ;?を書き込むと動作しますか? –
「うまくいかない」という意味を具体的に教えてください。コンパイラエラーが発生していますか(もしそうであれば、どちらか)、または実行時に何もしませんか? –
@Michaelはい、そうです。当然。 – jakev