友元函数友元类
Posted xiongyungang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了友元函数友元类相关的知识,希望对你有一定的参考价值。
友元函数
可以将全局函数或者其他类成员函数声明为友元函数,友元函数内部可以使用类的私有成员
#include<iostream>
using namespace std;
class CCar; //提前声明CCar类,以便后面的CDriver类使用
class CDriver
public:
void ModifyCar(CCar* pCar); //改装汽车
;
class CCar
private:
int price;
friend int MostExpensiveCar(CCar cars[], int total); //声明友元
friend void CDriver::ModifyCar(CCar* pCar); //声明友元
;
void CDriver::ModifyCar(CCar* pCar)
pCar->price += 1000; //汽车改装后价值增加
int MostExpensiveCar(CCar cars[], int total) //求最贵气车的价格
int tmpMax = -1;
for (int i = 0; i<total; ++i)
if (cars[i].price > tmpMax)
tmpMax = cars[i].price;
return tmpMax;
int main()
return 0;
友元类
一个类 A 可以将另一个类 B 声明为自己的友元,类 B 的所有成员函数就都可以访问类 A 对象的私有成员
有缘关系不能被继承,只授予该类
class CCar
private:
int price;
friend class CDriver; //声明 CDriver 为友元类
;
class CDriver
public:
CCar myCar;
void ModifyCar() //改装汽车
myCar.price += 1000; //因CDriver是CCar的友元类,故此处可以访问其私有成员
;
int main()
return 0;
以上是关于友元函数友元类的主要内容,如果未能解决你的问题,请参考以下文章