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

C++学习日记——友元

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

C++学习日记——友元

1. 友元存在目的

可以让一个函数或者类 访问另外一个类中的私有成员。

2. 友元的实现 2.1 全局函数做友元

在类中声明全局函数,然后在前面加关键字friend。

class Room
{
	friend void visit_bed(Room& r);	// 声明部分
public:
	Room(string sit, string bed) : SittingRoom(sit), BedRoom(bed)
	{
		cout << "初始化成功!" << endl;
	}
public:
	string SittingRoom;
private:
	string BedRoom;
};

void visit_sit(Room& r)
{
	cout << "正在访问" << r.SittingRoom << endl;	// 访问公共变量
}
void visit_bed(Room& r)
{
	cout << "正在访问" << r.BedRoom << endl;		// 访问私有变量
}
2.2 类做友元

在类中声明友类,然后在前面加关键字friend。

class Room
{
	friend class Person;	// 声明友元
	// ... 
}

class Person
{
public:
	Person()
	{
		room = new Room("客厅", "卧室");
	}
	void Visit()
	{
		cout << "正在访问" << room->SittingRoom << endl;	// 访问公共成员变量
		cout << "正在访问" << room->BedRoom << endl;		// 访问私有成员变量
	}

	Room* room;
};
2.3 成员函数做友元
// 在类中声明
class Room
{
	friend void Person::Visit();
	// ...
};
class Person
{
public:
	void Visit()
	{
		// ...
	}
};
3. 放松时刻

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

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

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