【初心者歓迎】C/C++室 Ver.33【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0003デフォルトの名無しさん
2006/11/24(金) 23:48:46汎用クラスから派生したクラスで継承元のクラス関数の呼び出しについて教えて
ください。
下の child::Add() のコメントにあるように VC++2005 だと例1の記述でも問題無く
動作します。動作はするのですが出来れば C++的に正しい(移植性が高い)書き方を
知りたいのですが、どういう書き方が正しいのでしょうか?
template <class T> class base{
T i,j;
public:
base(void){ i = 1; j = 2; };
~base(void){ i = j = 0; };
virtual T Add(void){ return i+j; };
}; // class base
class child : public base<int>{
int k;
public:
child(void){ k = 3; };
~child(void){ k = 0; };
int Add(void){
return k + base::Add(); // 例1:gcc4.1ではErrorだがVC++2005だとOK
//return k + base<int>::Add(); // 例2:両方ともOK
};
}; // class child
■ このスレッドは過去ログ倉庫に格納されています