发现以前对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`成员类似,都限制了对它们的直接...
【C/C++常见误区详解】 在C/C++编程中,遵循标准和良好的编程习惯至关重要,因为这直接影响到代码的可读性、移植性和维护性。以下是一些常见的误区及其解释: 1. **头文件包含误区**:在C/C++中,通常推荐使用`<>`...
关于`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++小游戏...
《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/C++编程中,有一些常见的误区需要程序员们特别注意,以避免在开发过程中遇到问题。以下是关于这些误区的详细解释: 1. C++与C的关系:C++并不是C的升级版,它们是两种独立的语言,各有自己的标准委员会。C++98...
《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++封装(class,struct,public,protected,private,friend)的博客例程。 https://blog.csdn.net/flysnow010/article/details/136907034
在C++中,通过访问控制(public, private, protected)实现封装,可以保护数据免受非法访问。 4. **继承**:继承允许一个类(子类)继承另一个类(父类)的特性,这样可以复用代码并创建层次结构。理解单一继承和...
《实用C++的CHM集合》是一份涵盖了C++编程领域的综合资源,包含了从基础知识到高级应用的广泛内容。这份集合共包含九个CHM( Compiled Help Manual)文件,是学习和查阅C++相关知识的理想工具。以下是这些CHM文件所...