以下代码会产生编译器错误:
“BaseTest::_protMember”:无法访问在“BaseTest”类中声明的受保护成员
为什么我不能访问_protMember
my 中的成员变量,class SubTest
即使它受到保护?
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
};
};
后续问题:
为什么在添加的复制构造函数中我可以访问另一个实例的受保护成员?