友元函数友元类

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;

以上是关于友元函数友元类的主要内容,如果未能解决你的问题,请参考以下文章

友元函数友元类.

友元函数和友元类

C++ 友元类,友元函数

友元函数友元类

C++中,啥叫友元函数?啥叫友元类?请举例说明。

友元函数和友元类