腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
标签
friend
#
friend
关注
专栏文章
(32)
技术视频
(0)
互动问答
(1)
C++中的friend究竟有什么用
1
回答
c++
、
friend
gavin1024
C++中的friend关键字用于声明一个类、函数或者成员函数为另一个类的友元。友元可以访问类的私有(private)和保护(protected)成员,即使它们不属于该类。这在某些情况下非常有用,例如当你希望实现一个类的辅助函数,但又不希望将其作为类的成员函数时。 例如,假设我们有一个名为Person的类,它有私有成员name和age。我们希望实现一个辅助函数,用于比较两个Person对象的年龄。我们可以将这个函数声明为Person类的友元函数: ```cpp class Person { private: std::string name; int age; public: Person(const std::string& n, int a) : name(n), age(a) {} friend bool compareAge(const Person& p1, const Person& p2); }; bool compareAge(const Person& p1, const Person& p2) { return p1.age < p2.age; } ``` 在这个例子中,compareAge函数可以访问Person类的私有成员age,尽管它不是类的成员函数。这使得我们可以在不破坏封装性的前提下实现所需的功能。 腾讯云相关产品推荐:腾讯云提供了一系列云计算产品,如云服务器、云数据库、云存储等,以帮助用户构建和部署应用程序。对于C++开发者,腾讯云云服务器支持Linux和Windows操作系统,可以满足不同开发需求。同时,腾讯云云数据库和云存储产品可以帮助用户轻松地存储和管理数据。...
展开详请
赞
0
收藏
0
评论
0
分享
C++中的friend关键字用于声明一个类、函数或者成员函数为另一个类的友元。友元可以访问类的私有(private)和保护(protected)成员,即使它们不属于该类。这在某些情况下非常有用,例如当你希望实现一个类的辅助函数,但又不希望将其作为类的成员函数时。 例如,假设我们有一个名为Person的类,它有私有成员name和age。我们希望实现一个辅助函数,用于比较两个Person对象的年龄。我们可以将这个函数声明为Person类的友元函数: ```cpp class Person { private: std::string name; int age; public: Person(const std::string& n, int a) : name(n), age(a) {} friend bool compareAge(const Person& p1, const Person& p2); }; bool compareAge(const Person& p1, const Person& p2) { return p1.age < p2.age; } ``` 在这个例子中,compareAge函数可以访问Person类的私有成员age,尽管它不是类的成员函数。这使得我们可以在不破坏封装性的前提下实现所需的功能。 腾讯云相关产品推荐:腾讯云提供了一系列云计算产品,如云服务器、云数据库、云存储等,以帮助用户构建和部署应用程序。对于C++开发者,腾讯云云服务器支持Linux和Windows操作系统,可以满足不同开发需求。同时,腾讯云云数据库和云存储产品可以帮助用户轻松地存储和管理数据。
热门
专栏
杨熹的专栏
302 文章
55 订阅
机器学习入门
345 文章
53 订阅
计算机视觉与深度学习基础
314 文章
58 订阅
小樱的经验随笔
798 文章
81 订阅
领券