| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 749 人关注过本帖
标题:关于“重载运算符和友元函数参数关系”的问题
取消只看楼主 加入收藏
hmsabc
Rank: 2
来 自:贵州省兴义市
等 级:论坛游民
帖 子:97
专家分:19
注 册:2010-8-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
关于“重载运算符和友元函数参数关系”的问题
程序代码:
//重载运算符和友元函数
#include<iostream>
using namespace std;

class Complex
{
public:
    Complex( ){ real=0;imag=0;}
    Complex( double r,double i):real(r),imag(i){ }
    friend Complex operator + (Complex &c1,Complex &c2);             //重载函数作为友元函数
    void display( );

private:
    double real;
    double imag;
};

Complex operator + (Complex &c1,Complex &c2)                        //定义作为友元函数的重载函数
{ return Complex(c1.real + c2.real,c1.imag + c2.imag);}

void Complex::display( )
{ cout << "(" << real << "," << imag <<"i)" << endl;}

int main( )
{
    Complex c1(3,4),c2(5,-10),c3;
    c3 = c1 + c2;
    cout << "c1 = ";c1.display( );
    cout << "c2 = ";c2.display( );
    cout << "c1 + c2 = ";c3.display( );
    system("pause");
    return 0;
}

/*
请问:如果想把类中申明友元函数的 friend 去掉,就是说,把 Complex operator+ ( Complex &c1,Complex &c2) 作
为 Complex 类的成员函数,行不行呢?为什么?你能保证在有两个参数的前提下,不用友元关系,使程序正常运行吗?
*/

搜索更多相关主题的帖子: 算符 函数 参数 载运 关系 
2010-08-14 11:50
快速回复:关于“重载运算符和友元函数参数关系”的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033068 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved