栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++深入学习笔记(13)—— 友元的声明

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++深入学习笔记(13)—— 友元的声明

在类的定义中进行友元的声明仅仅指定了访问的权限,而非一个通常意义上的函数声明。如果我们要调用友元函数,那么我们就必须在友元声明之外再对函数进行一次声明。
为了使友元函数对类的用户可见,我们通常将友元的函数声明与类放在同一个头文件中。
虽然有些编译器并未强制限定友元函数必须在使用之前在类的外部进行声明,但是我们最好这样做,因为如果更换了一个有如此强制要求的编译器我们也无须对代码进行改动。
如果一个类制定了友元类,那么该友元类的成员函数都可以访问此类的任何成员,包括私有成员。

// 该代码块的头文件为A.h
include
class A
{
public:
	void f(B b);
private:
	int b;
};

void A::f(B b)
{
	b.i = 1;		// 友元类成员函数访问私有成员
}
// 该代码块的头文件为B.h
class A;
class B
{
	friend class A;
private:
	int i;
};

也可以领成员函数作为友元

class B
{
	friend void A::f(B b);
};

**注意:**友元关系不存在传递性,也就是说如果A有自己的友元C,那么C不能理所当然的具有访问B的特权。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号