10.友元


友元分为友元函数和友元类

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

class ccar;  提前声明ccar类,以便后面的cdriver类使用
calss cdriver
{
    public:
        void modifycar(ccar *pcar);  //改装汽车   这里的ccar只是一个指针,如果
        //是一个类的化,那么class ccar要写全
}class ccar
{
    private:
        int price;
        friend int mostexpensivecar(ccar cars[],int total); //声明友元
        friend void cdriver::modifycar(ccar *pcar);  //声明友元
};
void cdriver::modifycar(ccar *pcar)
{
    pcar->pricc+=1000;
}
int mostexpensivecar(ccar cars[],int total)
{
    int tmpmax=-1;
    for(int i=0;i<total;++i)
        if(car[i].price>tmpmax)
            tmpmax=car[i].price;
     return 0;       
}
int main()
{
    return 0;
}

2.友元类 如果A是B的友元类,那么A的成员函数可以访问B的私有成员。

class ccar
{
    private:
        int price;
    friend class cdriver;     //声明cdriver为友元类
};
class cdriver
{
    public:
        ccar mycar;
            void moidfycar(){mycar.price+=1000;}//因为cdriver为ccar的友元类,故此处可以
                                                //访问其私有成员
};
int main(){return 0;}

3.友元类之间的关系不能传递,不能继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值