
C++ 友元函数
发布日期:2021-05-10 03:22:11
浏览次数:22
分类:精选文章
本文共 1322 字,大约阅读时间需要 4 分钟。
友元函数是在类中用关键字friend
修饰的非成员函数。友元函数可以是一个普通的函数,也可以是其他类的成员函数,虽然它不是本类的成员函数,但是在它的函数体中可以通过对象名访问类的私有和保护成员。
#include#include using namespace std;class Point { private: int x, y; // 私有数据成员 public: Point(int x = 0, int y = 0) : x(x), y(y){ } int getX() { return x; } int getY() { return y; } friend float dist(Point &p1, Point &p2); // 友元函数声明}; float dist(Point &p1, Point &p2){ double x = p1.x - p2.x; double y = p1.y - p2.y; return static_cast (sqrt(x * x + y * y)); // static_cast是一个c++运算符,功能是把一个表达式转换为float类型。}int main(){ Point *point1 = new Point(1, 1); // 定义 Point 类的对象 Point *point2 = new Point(4, 5); // 定义 Point 类的对象 cout << "两点间的距离是:"; cout << dist(*point1, *point2) << endl; // 计算两点间的距离 delete point2; delete point1; return 0;}
注:友元函数不仅可以是一个普通函数,也可以是另一个类的成员函数。友元成员函数的使用和一般友元函数的使用基本相同,只是要通过相应的类或对象名来访问。
#includeusing namespace std;class girl{ private: char name; int age; public: girl(char n, int d){ //构造函数 name = n; age = d; } friend void display(girl &x); //声明友元函数};void display(girl &x){ //类外定义 友元函数 cout << "姓名:" << x. name << "\n年龄:" << x.age << endl; //girl类的友元函数能访问girl类对象的私有成员}int main(){ girl e('z', 18); display(e); //调用友元函数 return 0;}
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月07日 03时07分43秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python 列表 笔记
2021-05-10
初学java:斐波那契数列的java实现
2021-05-10
统一建模语言UML
2021-05-10
yolov5数据集制作 数据集分割+voc格式转txt格式代码
2021-05-10
Java多线程
2021-05-10
数据库模式分解----如何判断保持无损连接性和保持函数依赖
2021-05-10
Resouces类封装(添加了缓存功能)
2021-05-10
Unity监听日记
2021-05-10
Android SD卡
2021-05-10
将数据装换成为byte[]
2021-05-10
Unity字符串加密(异或)
2021-05-10
ARFoundation系列讲解-45拍照并且保存到系统相册
2021-05-10