void print() const {
cout << "B::print()" << endl;
}
protected:
int x;
};
template<typename T>
class A: public B<T> {
public:
void test_scope() const {
cout << "x = " << x << endl; // 引用全局的x,输出 x = 8
// cout << "x = " << B<T>::x << endl; // 必须显式调用父类的x
print(); // 调用全局的print(),输出 hello
// B<T>::print(); // 必须显式调用父类的函数
}
};
class C {
public:
C() :
x(0) {
}
explicit C(const int& v) :
x(v) {
}
void print() const {
cout << "C::print()" << endl;
}