发现以前对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;};
分享到:
相关推荐
在C++中,`protected`是一个访问修饰符,它用于控制类的成员(变量和函数)的访问权限。本章将深入探讨`protected`关键字及其在面向对象编程中的作用。 `protected`成员与`private`成员类似,都限制了对它们的直接...
关于`void main()`的误区: 虽然在某些编译器(如vc6)中,`void main()`可能会编译通过,但这并不是标准所允许的。`void main()`不符合C或C++的规范,因为它没有指定返回类型,而标准规定`main()`函数必须返回`int`...
### C++指针应用的四大误区 #### 一、引言 C++作为一种高性能的编程语言,被广泛应用于各种计算密集型的任务中,如游戏开发、高性能计算、系统编程等。由于C++允许直接访问内存,因此使用指针是其一大特点。然而,...
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏...
《Effective Modern C++:改善C++11和C++14的42个具体做法(影印版)(英文版)》中包括以下主题:剖析花括号初始化、noexcept规范、完美转发、智能指针make函数的优缺点;讲解std∷move,std∷forward,rvalue引用和...
5. **封装**:封装是面向对象的三大特性之一,通过访问修饰符(public、private、protected)实现对成员变量和函数的访问控制,保护数据不被非法修改。 6. **继承**:继承允许一个类(子类)从另一个类(父类)继承...
4. 在C++中,可以将struct作为类来使用,包含成员函数和虚函数,同时可以有public、protected、private的访问控制,而在C语言中,struct仅用于数据结构。 关于头文件的引用,双引号""用于引用项目内的自定义头文件...
类的设计、对象的创建与销毁、构造函数与析构函数、访问修饰符(public、private、protected)以及友元机制都是关键内容。 3. **指针与引用**:C++中的指针是其强大之处,也是难点之一。教程会涵盖指针的基本操作、...
《C++编程实例100篇》是一本深入浅出的C++编程教程,它以实践为主导,通过丰富的实例帮助学习者掌握C++语言的基础和核心概念。这本书的每个实例都精心设计,旨在帮助初学者和有经验的开发者巩固和提升C++编程技能。 ...
21天学通C++(第五版) vs2008程序打包 深入浅出MFC 浙大教材C++达内 C++ 华为C++培训资料 visual c++_MFC 资源内容: visual c++_MFC 达内 C++ C++课件.ppt c++源码 .rar Core C++ Programming_new.ppt Core C++ ...
《高效C++中级编程教程》是一份针对有一定C++基础的学习者精心编撰的课程资料。这份教程旨在深化对C++编程思想的理解,特别是面向对象的编程思想,以及这一思想在实际编程中的应用技巧。教程内容丰富,涵盖了C++语言...
C++中的封装是通过访问修饰符(public、private、protected)实现的,它可以保护对象的内部状态不被外部随意修改,从而提高代码的安全性。继承则允许一个类(子类)从另一个类(父类)中继承属性和行为,减少了代码...
C++封装(class,struct,public,protected,private,friend)的博客例程。 https://blog.csdn.net/flysnow010/article/details/136907034
在C++中,通过访问控制(public, private, protected)实现封装,可以保护数据免受非法访问。 4. **继承**:继承允许一个类(子类)继承另一个类(父类)的特性,这样可以复用代码并创建层次结构。理解单一继承和...
- **类成员访问控制**:在C++中,类的成员可以设置为public、private或protected。Public成员对所有代码开放,可以在类外访问;Private成员仅在类内部可访问;而Protected成员对类本身以及其派生类开放。 - **this...
一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何...下面在看下c++ public private protected关键字 1、当在类的内部使用这三个关键字,表示访问权限: public: 可以被任意访问。 protected: