问题描述
我在理解衍生类为什么不能通过以下代码访问基类的受保护成员时遇到一些麻烦:
#include< stdio.h>
班级CBase
{
受保护:
int x;
public:
CBase(){x = 123;}
public:
operator int(){return x;}
};
class CDerived:public CBase
{
public:
CDerived()
{
CBase * p = this;
p- > x = 456; //错误:无法访问受保护的成员
}
};
void main()
{
printf(" CBase =%d \ nCDerived =%d \ n",CBase(),CDerived());
}
我不明白为什么CDerived不能访问整数x在
CBase没有让CBase宣布CDerived为朋友。可以有人
向我解释为什么会这样?谢谢。
实际上,常见问题解答也回答了这个问题。
-
<的mailto:二*********** @ yahoo.com> < http://www.dietmar-kuehl.de/>
< http://www.contendix.com> - 软件开发&咨询
Actually, this question is also answered in the FAQ.
--
<mailto:di***********@yahoo.com> <http://www.dietmar-kuehl.de/>
<http://www.contendix.com> - Software Development & Consulting
这篇关于多态性和受保护的帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!