第一:private, public, protected 访问标号的访问范围。
private:只能由该类中的函数,其友元函数访问,不能被任何其他访问,该类的对象也不能访问。
protected:可以被该类中的函数,子类的函数,以及其友元函数访问,但不能被该类的对象访问。
public:可以被该类中的函数,子类的函数,以及其友元函数访问,也可以由该类的对象访问。
注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。
如果将类的封装比喻成一堵墙的话,那么友元机制就像墙上了开了一个门,那些得 到允许的类或函数允许通过这个门访问一般的类或者函数无法访问的私有属性和方法。
protected主要用于有继承的情况
private 属性不能够被继承。
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;
如下所示:
public: protected: private:
public继承 public protected 不可用
protected继承 protected protected 不可用
private继承 private private 不可用
public继承 public protected 不可用
protected继承 protected protected 不可用
private继承 private private 不可用
相关推荐
C++类访问控制public、private、protected探讨[归类].pdf
一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何地方都可以访问. 2 protected: 只有类本身及其派生类和其友元函数,友元类可以访问. 3 private: 只有类本身及其友元函数,友元类可以访问. 4 friend...
初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有...
C++中public继承、private继承、protected继承的例子
我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员。然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限
。
。
在main()函数中写代码测试这些类的功能,尤其应使用一个Node类的指针去调用各个类的draw()函数 class Node { protected: std::string m_strName; // 节点的名称 gboolean m_bSelected;// 节点是否被选中 } class ...
通过C++语言中的继承机制,一个新类既可以共享另一个类的操作和数据,也可以在新类中定义已有类中没有的成员。 class CBase { public: void FuncA(void); void FuncB(void); }; //派生类 class CDerive :...
而继承包含了虚拟继承和普通继承,在可见性上分为public、protected、private。可见性继承比较简单,而虚拟继承对学习c++的难度较大。 首先,虚拟继承与普通继承的区别有: 假设derived 继承自base类,那么...
意思是:C++中,对于类A,只要能访问类A,就能访问A的对象的private方法。 Ruby中,却不行:你只能在你本对象的实例中访问本对象的private方法。 因为Ruby的原则是“private意为你不能指定方法接收者”,接收者只能...
C++封装(class,struct,public,protected,private,friend)的博客例程。 https://blog.csdn.net/flysnow010/article/details/136907034
在c++的继承控制中,有三种不同的控制权限,分别是public、protected和private。定义派生类时,若不显示加上这三个关键字,会使用默认的方式,用struct定义的类是默认public继承,class定义的类是默认private继承。...
根据软考中的一道题,做的一个小小的例子,看完以后就会对继承关系有个清晰的了解,试题:在C++语言中,已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类 ...
最近在使用C++创建类的时候,忽然发现自己对于类访问控制 public,protected,private 的作用没有理解透彻,后来就查了些资料,这里以作记录。 访问控制 C++类的重要属性就是封装和继承。因此,最关键的问题就是权限...
在类的继承成中public,protected,private这三种访问控制的区别,代码和注释相结合,适合初学者了解C++的各种访问控制区别。