C++ 面向对象编程 友元函数的使用

                                               C++ 面向对象编程


友元函数: 
      
          使用1 、操作多个对象的友元函数 , 也就是这个函数可以同时操控多个类中的对象 
     
#include<iostream>
using namespace std;
class B;
class A
{//友元函数同时操控多个类的对象 下面是一种 实现方式, 还有其他方式
    int n ;
    public :
       A(int i ):n(i){}
       friend int fun(A &, B &);
};
class B
{
   int m;
   public :
        B(int j):m(j){}
        friend int fun(A &, B &);
};
int fun(A &a, B &b)
{//友元函数的定义
    return a.n + b.m;
}
int main()
{
    A a(10);
    B b(20);
    cout<<fun(a, b)<<endl;
    return 0;
}




        2、 应用2 可以返回类的对象

 下面直接看代码, 代码中有解释:
#include<iostream>
using namespace std;

class myclass
{
    int n ;
    public :
       myclass() {}; //无参数构造函数
       myclass(int i) { n = i;}
       friend myclass add(myclass &, myclass &);
       friend myclass sub(myclass &, myclass &);
       void disp(){cout<<n<<endl;}
};
myclass add(myclass &a, myclass &b)
{//返回类对象的友元函数
    myclass tmp;
    tmp.n = a.n + b.n;
    return tmp;
}
myclass sub(myclass &a, myclass &b)
{//返回类的对象的实现方式2 
    int m ;
    m = a.n + b.n;
    return myclass(m);
}
int main()
{
    myclass a(20);
    myclass b(10);
    myclass c, d;
    c = sub(a, b);
    cout<<" n = "<<endl;
    c.disp();
    d = add(a,b);
    cout<<" n = "<<endl;
    d.disp();

    return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangxiaoming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值