C++学习笔记:友元函数和友元类

本文详细介绍了C++中友元函数和友元类的概念,包括它们如何破坏类的封装性和如何在类之间进行数据操作。通过实例展示了如何在类A中声明友元函数和友元类B,并演示了友元类如何访问和修改友元类的私有数据成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

友元函数,故名思议,是类的好朋友。友元函数破坏了类的封装性。友元函数通过对象参数可以访问私有数据成员。


友元类:

1. 若B类是A类的友元类,则B类的所有成员函数都是A类的友元函数。

2. 友元类通常设计为一种对数据操作或类之间传递消息的辅助类。


// 友元函数.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;
class A{
private:
	int a;
public:
	A(int _a=0){
		a = _a;
	};
	~A(){};
	int getA(){
		return a; 
	}
	friend class B;
	friend void modify(A *t,int x);//1.声明的位置和public、private没有关系
	//2.函数modify是类A的好朋友 即友元函数
};
class B{
public:
	void set(int a){
		objA.a = a;
	}
	void printA(){
		cout << objA.a << endl;
	}
private:
	A objA;
};
void modify(A *t, int x){
	t->a = x;
}
int _tmain(int argc, _TCHAR* argv[])
{
	A a(10);
	cout << a.getA() << endl;
	modify(&a, 11);
	cout << a.getA() << endl;
	B objB;
	objB.set(300);
	objB.printA();
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值