以下代码会产生编译错误:
``` 'BaseTest::_protMember' : cannot access protected member declared in class 'BaseTest' ```
为什么我不能访问类 SubTest 中已声明为 protected 的成员变量 `_protMember` 呢?
``` 'BaseTest::_protMember' : cannot access protected member declared in class 'BaseTest' ```
为什么我不能访问类 SubTest 中已声明为 protected 的成员变量 `_protMember` 呢?
class BaseTest
{
public:
BaseTest(){};
BaseTest(int prot)
{
_protMember = prot;
};
protected:
int _protMember;
};
class SubTest : public BaseTest
{
// followup question
SubTest(const SubTest &subTest)
{
_protMember = subTest._protMember; // this line compiles without error
};
SubTest(const BaseTest &baseTest)
{
_protMember = baseTest._protMember; // this line produces the error
};
};
跟进问题:
为什么在已添加的复制构造函数中,我可以访问另一个实例的受保护成员?
BaseTest
而不是SubTest
衍生实例-这就是难点)。 - Tony Delroy