友元函数可访问类私有和受保护数据成员,而全局函数不行,友元函数在类声明中声明,全局函数在类外声明,使用 friend 关键字声明友元函数,用 extern 关键字声明全局函数。友元函数通
友元函数可访问类私有和受保护数据成员,而全局函数不行,友元函数在类声明中声明,全局函数在类外声明,使用 friend 关键字声明友元函数,用 extern 关键字声明全局函数。友元函数通过声明方式获得访问类成员变量的权限,如通过声明一个友元函数 getprivatedata 可以访问 myclass 类私有变量 x。
C++ 友元函数详解
友元函数和全局函数的区别
在 c++ 中,友元函数是一种特殊的函数,它可以访问类成员函数中声明的私有和受保护的数据成员。相比之下,全局函数在类外声明,无法访问私有和受保护的数据成员。
友元函数的语法
友元函数的语法如下:
friend 返回类型 函数名(参数列表);
例如,声明一个可以访问 MyClass
中私有数据成员的友元函数:
friend int getPrivateData(MyClass& object);
友元函数和全局函数的区别
友元函数和全局函数的主要区别如下:
friend
关键字声明,而全局函数使用 extern
关键字声明。实战案例
考虑一个包含私有成员变量 x
的 MyClass
类:
class MyClass {
private:
int x;
public:
int getX();
void setX(int value);
};
要访问 MyClass
的私有数据成员 x
,我们可以声明一个友元函数:
friend int getPrivateData(MyClass& object) {
return object.x;
}
使用友元函数
我们可以使用友元函数来访问 MyClass
的私有数据成员:
int main() {
MyClass object;
object.setX(10);
int privateData = getPrivateData(object);
cout << "Private data: " << privateData << endl;
return 0;
}
运行此代码将输出:
Private data: 10
以上就是C++ 友元函数详解:友元函数和全局函数的区别?的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: C++ 友元函数详解:友元函数和全局函数的区别?
本文链接: https://www.lsjlt.com/news/610549.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-13
2024-05-13
2024-05-13
2024-05-13
2024-05-13
2024-05-13
2024-05-12
2024-05-12
2024-05-12
2024-05-12
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0