时间:2021-05-20
相对于Java而言,友元是C++中特有的一种元素,很多教材上对其介绍的相对较少,因此初学的时候往往不能很快掌握,本文总结了友元的用法和一些注意的地方,供大家参考借鉴。希望能对初学C++的朋友起到一点帮助作用。
操作步骤:
1)在MyFriend类中,将Father类定义成友元
2)写一个Son类继承自Father类
3)在Father类和Son类的构造函数中分别创建MyFriend对象,并定义其内部的三个变量
4)在MyFriend类的构造函数中创建Father对象,并定义其内部的三个变量
结果及注意事项:
1)Father类中创建的MyFriend对象允许直接访问MyFriend类中所有变量
2)Son类中创建的MyFriend对象只允许直接访问MyFriend类中Public变量
3)由第二点可知,友元关系无法继承
4)MyFriend类中创建的Father对象只允许直接访问Father类中的Public变量
5)由第四点可知,友元关系是单向的,即A为B友元,B并不是A的友元,需要另外单独定义
MyFriend.h页面代码如下:
#include "Father.h" class MyFriend{ friend class Quote; //友元类直接这样定义就OK了 public: MyFriend(){ Father *p = new Father(); p->var1 = 1; p->var2 = 1; p->var3 = 1; } int var1; protected: int var2; private: int var3; };Father.h页面代码如下:
#include "MyFriend.h" class Father{ public: Father(){ MyFriend *p = new MyFriend(); p->var1 = 1; p->var2 = 1; p->var3 = 1; }; int var1; protected: int var2; private: int var3; }Son.h页面代码如下:
#include "MyFriend.h" class Son : Father{ Son(){ MyFriend *p = new MyFriend(); p->var1 = 1; p->var2 = 1; p->var3 = 1; }; }感兴趣的读者可以调试运行一下本文实例,相信会有新的收获。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C++中友元的实例详解尽管友元被授予从外部访问类的私有部分的权限,但他们并不与面向对象的编程思想相悖;相反他提高了公共接口的灵活性。一、友元类友元声明可以位于公
C++中构造函数的实例详解c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++
本文实例讲述了c++中map的基本用法和嵌套用法。分享给大家供大家参考。具体分析如下:C++中map容器提供一个键值对容器,map与multimap差别仅仅在于
C++中友元函数与友元类详解总的来说,友元分为两类:友元函数与友元类。友元是针对类而言,它提供了一种非类的成员函数来访问类的非公有成员的一种机制。可以把一个函数
下面给出C++类的友元机制说明(对类private、protected成员访问),需要注意的是,友元机制尽量不用或者少用,虽然它会提供某种程度的效率,但会带