2 フェーズ ルックアップの質問: このコードを作成するためのより総合的な方法、つまり、これらすべてのusing
ディレクティブを回避する方法はありますか? のようなusing CBase<T>;
ものが欲しいのですが、受け入れられません。
#include <iostream>
template <typename T>
class CBase
{
protected:
int a, b, c, d; // many more...
public:
CBase() {
a = 123; c = 0;
}
};
template <typename T>
class CDer : public CBase<T>
{
// using CBase<T>; // error, but this is what I would like
using CBase<T>::a;
using CBase<T>::b;
//...
public:
CDer() {
std::cout << a << this->c;
}
};
int main()
{
CDer<int> cd;
}
私の実際のコードには、さらに多くのメンバー変数/関数があり、何らかの方法でより短いコードを記述できるかどうか疑問に思っていました。
もちろん、this->c
構文を使用しても問題は解決しません...
ありがとう!
gcc 4.1 MacOS X 10.6