从模板继承时所需的限定访问
Qualified access needed when inheriting from template
在这种情况下,为什么我不能在B1
的情况下访问不合格的基类成员x
?我看不出有歧义…
template<class T>
struct A { T x; };
template<class T>
struct B1 : A<T> { T f() { return A<T>::x; } };
struct B2 : A<int> { int f() { return x; } };
由于x
不依赖,因此将在定义模板的上下文。在这种情况下,编译器对T
一无所知,无法查找依赖基类。例如,如果不知道T
是什么,它怎么可能知道A<T>
。(例如,A
可能有一个专门化,具有完全不同的成员。)
相关文章:
- 继承和友元函数,从基类访问受保护的成员
- 如何在复杂继承中访问静态成员变量
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 为什么继承的结构成员在联合中无法访问?
- C++继承,无法访问继承的元素
- 构造函数无法访问继承类私有 int
- 重载<<无法访问继承的私有数据
- Qt:如何访问继承的小部件?
- C++无法访问继承类中的字段
- 为什么友元函数无法访问继承类的私有变量?
- 无法访问继承的类属性
- 如何访问继承的成员
- Qt 访问继承类的 D 指针
- 在构造基类期间访问继承的方法
- 当基类要访问继承类的成员时
- 在c++中如何访问继承类中的私有基成员变量
- 访问继承中的私有成员
- 如何在Windows中访问继承的匿名管道HANDLE,而不是stdout,stderr和stdin?
- 使用内部类继承模板类,并访问继承类中的内部类
- 我如何访问继承代码的不同部分