c++ - 从模板继承时需要合格的访问权限

标签 c++ templates

在这种情况下,为什么我无法访问基类成员x B1不合格案件?对我来说看起来并不含糊......

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一无所知,并且无法查看依赖基数 类。例如,它如何知道 A<T> 的任何信息?不知道什么T是。 (例如,可能有 A 的专门化,具有完全不同的成员。)

关于c++ - 从模板继承时需要合格的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15833260/

相关文章:

c++ - k路三角形集交点和三角剖分

c++ - 从具有多列整数的文件中读取并将它们放入数组中

c++ - 如何保存 vector 迭代器的值?

c++ - c++继承模板类的构造函数

c++ - 双模板方法的部分特化失败

templates - 嵌套模板,查找父级

c++ - 为什么我需要在 Less Traits 中使用 const 函数

c++ - iOS 音频队列 : kAudioQueueErr_InvalidPropertyValue for property kAudioQueueProperty_CurrentLevelMeter

c++ - 为什么 nullptr_t 不能分配给 int*?

c++ - 引入新模板参数的模板类的模板友元函数