2 단계 조회 질문 : 이 코드를 작성하는 더 복잡한 방법이 있습니까? 예 : using
지시문을 모두 사용하지 않으시겠습니까? using CBase<T>;
과 같은 것은 내가 좋아하지만 받아 들여지지 않았습니다. 내 진짜 코드에서2 단계 검색 : "코드 팽창"을 피할 수 있습니까?
#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 맥 OS X 10.6
'std :: cout << this-> a;'는 어떻습니까? – kennytm
또는'std :: cout << a;'를 사용하는 지시어가 없으면 어떨까요? 수퍼 클래스의 보호 된 멤버에 액세스 할 수 있습니다. –
@Alex :'오류 : '이 범위에서'가 선언되지 않았습니다. ' – kennytm