第十二周项目一 阅读程序,请写出这些程序的运行结果(1)

/*copyright(c)2016.烟台大学计算机学院
 * All rights reserved,
 * 文件名称:text.Cpp
 * 作者:舒文超
 * 完成日期:2016年5月11日
 * 版本号:vc++6.0
 *
 * 问题描述:阅读程序写出程序运行的结果
 */
#include<iostream>
using namespace std;
class Sample
{
private:
    int x;
public:
    Sample(){}
    Sample(int a){x=a;}
    void disp(){cout<<"x="<<x<<endl;}
    friend Sample operator+(Sample &s1,Sample &s2);
};
Sample operator+(Sample &s1,Sample &s2)
{
    return Sample(s1.x+s2.x);
}
int main()
{
    Sample obj1(10);
    Sample obj2(20);
    Sample obj3;
    obj3=obj1+obj2;
    obj3.disp();
    return 0;
}

运行结果:

                x=30    :(s1.x=10   s2.x=20  ==> return 30)

PS:为什么将   “Sample operator+(Sample &s1,Sample &s2);”      定义为友元函数

       因为方便取出其中的私有成员,如果将x定义为公有也可不用友元:或者加一

个公有函数来间接访问私有也可不用友元。



你可能感兴趣的:(第十二周项目一 阅读程序,请写出这些程序的运行结果(1))