Вопрос двухфазного поиска:
Есть ли более синтетический способ написания этого кода, то есть избегая всех этих 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
не решает проблему ...
Спасибо'S!
gcc 4.1
MacOS X 10,6