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

深入理解数据库原理
以实战为基础,以数据库原理为基础,结合实战,深入理解数据库原理。
wangxiaoming

                                               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;
}




wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值