【发布时间】:2018-08-23 18:33:57
【问题描述】:
我有以下继承结构:
template<unsigned int t>
class Base {
protected:
int a;
};
template<unsigned int t>
class Derived1 : public Base {
};
template<unsigned int t>
class Derived2 : public Base {
};
我想要让 Derived1 构造函数将 Derived2 对象作为参数,然后访问 Base 类中的受保护成员 'a'。
我在基类中添加了以下行:
template<unsigned int u> friend class Derived2;
所以它看起来如下:
template<unsigned int t>
class Base {
protected:
int a;
template<unsigned int u> friend class Derived2;
};
编译时出现错误 C2248:“无法访问 Base 类中声明的受保护成员”
【问题讨论】:
标签: c++ templates inheritance friend