首页 > 编程语言 > 详细

C++ 友元

时间:2015-02-05 23:11:07      阅读:241      评论:0      收藏:0      [点我收藏+]

友元分友元函数、友元类。

友元函数:一个类的友元函数可以访问该类的私有成员

我们可以将一个类的成员函数(包括构造、析构函数)作为另一个类的友元函数。如下

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的友元类,则A的成员函数可以访问B的私有成员。

注意:友元类之间的关系不能传递,不能继承。

如下代码

class CCar {
private:
    int price;

    friend class CDriver; // 声明CDriver 为友元类
};

class CDriver {
public:
    CCar myCar;

    void ModifyCar() { // 改装汽车
        myCar.price += 1000;
    }
};

int main() {return 0;}

 

C++ 友元

原文:http://www.cnblogs.com/aqing1987/p/4276060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!