发现以前对protected的用法一直是错误的。
protected的继承的访问权限其实是相对于类的,而不是对象。这么说可能无法理解。看例子:
class Base{
protected:
int a;
public:
Base();
};
class Child{
public:
Child();
test(Child &c){
c.a = 3;
}
test2(Base &b){
b.a = 3;//error
}
};
int
main(){
Child child;
Base base;
child.test();//right
child.test2(b);//error, 因为protected的作用范围其实是相对于类。所以只要是child类的实例都可以在类的范围内直接访问protected成员。
}
test2要想工作得写一个get_a();
Base::get_a(){return a;};
分享到:
相关推荐
6. **访问控制**:public、private和protected关键字,用于控制类成员的可见性。 7. **继承与多态**:继承允许一个类(子类)从另一个类(父类)继承属性和行为,多态则允许通过基类指针或引用调用派生类的成员函数...
可访问性控制符(`public`, `protected`, `private`)决定了类的成员对外部的可访问程度,而可见性则与作用域有关。混淆这两个概念可能导致类的成员被不当访问,从而破坏封装性。 #### 常见错误9:使用糟糕的语言 ...
- **正确做法**:理解并正确应用不同的访问控制符(如public、protected、private)。 **常见错误9:使用糟糕的语言** - **错误表现**:选择不合适的编程语言或库。 - **正确做法**:基于项目需求选择最适合的工具...
C++是一种广泛应用于系统软件、应用软件、游戏开发、嵌入式系统等领域的高级编程语言。...同时,通过对比答案,学习者可以发现自己的思维误区,深化对C++语言的理解,提高编程技能,为今后的项目开发打下坚实基础。
- **可访问性:** 控制类成员的外部访问权限,如public、protected和private。 - **可见性:** 指的是变量或函数是否可以在其他文件或作用域中被识别。 - **常见误区:** - **混淆概念:** 许多开发者混淆了可...
- **修饰符位置**:如public、protected、private等修饰符的位置,通常位于它们所修饰的对象之前。 - **注释**:注释应清晰、简洁,用于解释代码功能而非描述代码逻辑。 - **类的版式**:类定义的结构和布局,包括...