C++学习之友元函数(一)
来源:互联网 发布:淘宝首页排版要求 编辑:程序博客网 时间:2024/06/07 09:01
本文是学习慕课网C++远征之模板类.
友元函数分为友元全局函数和友元成员函数:
友元全局函数:将函数定义在全局,并在类中声明为友元
友元成员函数:将函数定义在类当中,并把函数声明为另外一个类的友元函数
两个都可以直接访问类的私有成员
(1)友元全局函数
先来看一段代码
#include <iostream>using namespace std;class Coordinate //定义一个类:坐标{ friend void printXY(Coordinate &c); //友元函数,参数提倡引用或指针的方法 public: Coordinate(int x,int y); //构造函数 private: int m_iX; //x坐标 int m_iY; //y坐标 }; void printXY(Coordinate &c)//友元函数定义不需要加类名 { cout<<c.m_iX<<' '<<c.m_iY;//直接访问类的私有成员 } Coordinate::Coordinate(int x,int y) { m_iX=x; m_iY=y; } int main(void) { Coordinate coor(3,5); printXY(coor); return 0; }
(2)友元成员函数
#include <iostream>using namespace std;class Coordinate;class Circle{public: void printXY(Coordinate &c);};//定义一个类:坐标class Coordinate{ friend void Circle::printXY(Coordinate &c);//友元函数为另一个类的成员函数 //友元函数,Cricle类的成员函数 public: Coordinate(int x,int y); //构造函数 private: int m_iX; //x坐标 int m_iY; //y坐标 }; int main(void) { Coordinate coor(3,5); Circle circle; circle.printXY(coor); return 0; } void Circle::printXY(Coordinate &c) { cout<<c.m_iX<<' '<<c.m_iY; } Coordinate::Coordinate(int x,int y) { m_iX=x; m_iY=y; }
好了,这里是简单了解了定义,下次我会更详细地学习友元函数的编码实现。
阅读全文
1 0
- C++学习之友元函数(一)
- 一步一步学习C++(类)之友元函数
- 友元函数(C++)
- C++学习之友元函数(二)
- C++学习之友元函数
- C++(一)友元
- [c++]友元函数
- 【C++】友元函数
- c++:友元函数
- C++:友元函数
- 【C++】友元函数
- C ++友元的浅析(一)
- c 语言学习之printf函数(一)
- [C++]友元学习
- C++: 运算符重载(一)、友元函数、链式编程支持
- 项目一之友元函数实现功能
- 第十五章之(一)友元
- C++_友元函数
- vim编辑C++的小小心得
- windows ssh软件下载
- 高德地图功能,打release包报错崩溃
- C++11 标准新特性:委派构造函数
- 数据结构--单向链表3
- C++学习之友元函数(一)
- Reactjs入门官方文档(七)【lists-and-keys】
- 第11周项目4- 利用遍历思想求解图问题(3)
- http、id、json、exception、jedis、cookie、自定义响应式结构模板
- git权威指南总结六:git协议和工作协同
- 数据结构-链表-多项式的相乘和相加
- 切割字符串函数(strtok)
- 系统移植-系统搭建
- 正则表达式REGEXP