C++ 继承范围方面的混淆
这是我的密码:C++ 继承范围方面的混淆,c++,oop,inheritance,C++,Oop,Inheritance,这是我的密码: class Base{ public: getValue(int a){ x = a; } protected: int x; }; class Derived: public Base{ public: Derived():Base(){ Value = 0; } void Function(); } 因此,我的困惑来自继承,当您必须在派生函数中设置Base函数的
class Base{
public:
getValue(int a){
x = a;
}
protected:
int x;
};
class Derived: public Base{
public:
Derived():Base(){
Value = 0;
}
void Function();
}
因此,我的困惑来自继承,当您必须在派生函数中设置Base
函数的范围时,在google中,它说基类中的所有内容都是公共的。如果是这样的话,Base
函数中的受保护值在Derived
函数中不容易访问吗?那不是很糟糕吗
如果是这种情况,那么就没有办法在派生类中保护基类的受保护值 公共继承并不意味着一切都是公共的。这意味着从
Base
公开的内容在Derived
中公开。受保护的数据成员未公开
如果您使用了受保护的继承,那么Base
的公共方法将在Derived
中受到保护。如果您使用私有继承,那么Base
中的公共和受保护方法在派生的
中将是私有的
我猜您可以说继承封装指示基类的最大可见性,而不是它的绝对可见性
编辑:实际上WhiZTiM提供的链接很好地解释了这一点:“。在谷歌,它说基类中的所有内容都是公共的……”这是错误的。不要总是信任谷歌,C++上有太多错误的东西。顺便说一句,它不叫“范围”,“范围”是关于其他东西的。你的主题是