C++复习第二天 友元
来源:互联网 发布:淘宝买家怎么贷款啊 编辑:程序博客网 时间:2024/05/23 21:30
友元(走后门!)
C++中控制类对象私有部分的访问,但有时候需要在类的外部访问类的私有成员,这种情况下C++提供了友元机制。
#include <iostream>//原文地址:http://blog.csdn.net/oyhb_1992/article/details/78010362using namespace std;class demo0; //前置声明class demo{private: int i;//只能在类的内部访问public: demo()//构造函数 { cout << "demo" << this <<endl; } demo(const demo &it)//拷贝构造 { this->i = it.i;//一旦自己实现了拷贝构造函数,类成员之间的赋值就需要自己完成,编译器不管了 cout << "copy demo" << this << endl; } ~demo()//析构 { cout << "~demo" << this << endl; } void set_i(int i) { this->i = i; } int get_i() { return i; } friend void test();//意思是声明一个该类的友元函数,给test函数开后门 friend class demo1;//意思是声明一个该类的友元类 friend class demo0;//demo 和demo0互为朋友};void test()//对于test来讲可以自由的访问demo当中的任意成员{ demo d; d.i = 100;//友元函数访问私有变量}class demo0{private: i;public: demo1() { demo d; d.i = 100;//友元类访问私有成员变量 }};class demo1{public: demo1() { demo d; d.i = 100; } friend class demo2;};//我的朋友的朋友,不会是我的朋友,友元不能class demo2{public: demo2() { demo d;//demo2不一定是demo的朋友,不能访问 d.i = 100; }};//demo2是demo1的朋友,demo1是demo的朋友,但是demo2不一定是demo的朋友//demo 和demo0互为朋友。他们之间可以互相访问int main(){ test(); cout << "Hello World!" << endl; return 0;}
阅读全文
0 0
- C++复习第二天 友元
- c /c++复习笔记 第二天
- C++友元复习
- C语言复习 第二波
- C++PRIMER第一轮复习第二章
- 网工复习第二天
- Java基础复习第二天
- 继续复习倒数第二天
- PHP复习第二天PDO
- C 复习第二课 ctype 一些基础函数
- Java复习第二天---JavaSE基础
- Android 第二天 类的复习
- 第二天复习多线程的笔记整理
- javascript复习第二天查找DOM对象
- javascript复习第二天删除元素节点
- php复习 第二天 流程控制
- C++(一)友元
- [C++]友元学习
- Buffer对象,常用的Buffer方法;
- Docker 学习应用篇三:使用docker搭建的环境,安装thinksns
- 天平,紫书P157UVa839
- Java反射机制理解
- Java基础之集合框架--Collections.reverseOrder()
- C++复习第二天 友元
- nyoj 108 士兵杀敌(一)
- VS编译器为你报的那些错
- android 进程和线程的区别,以及系统的进程的基本知识
- 集合创建、添加、遍历
- 深度学习基础-决策树应用(python实现)
- MyBatis基于Spring-boot集成通用Mapper以及pagehelper分页插件(含源码下载)
- 【智能合约】Solidity
- 单链表(内部循环的问题)