C++复数重载的一个小疑点,就是有一点点迷糊
C++复数重载的一个小问题,就是有一点点迷糊
/*****************************************************
*声明复数的类,complex,使用友元函数add实现复数加法。
*版本:2013-08-25-V1.0 复数类Complex 定义
*编写人:zhengkailun
*****************************************************/
//复数类的定义
#ifndef COMPLEX_H
#define COMPLEX_H
class Complex{
public:
Complex(){}; //默认构造函数
Complex(double Real,double Imagine); //重载构造函数
Complex(const Complex& rhs){} //copy构造函数
Complex& operator =(const Complex& rhs){} //赋值操作符
~Complex(){} //析构函数
double get_Real(); //获得实部
double get_Imagine(); //获得虚部
friend Complex& operator +(const Complex& lhs,const Complex& rhs); //重载复数加法函数友元函数
private:
double real,imagine; //虚数的实部虚部声明
};
#endif//COMPLEX_H
/*****************************************************
*Complex类的实现文件
*编写人:zhengkailun
*****************************************************/
#include"Complex.h"
#include<iostream>
Complex::Complex(double Real,double Imagine)
{
real = Real;
imagine = Imagine;
}
double Complex::get_Real()
{
return real;
}
double Complex::get_Imagine()
{
return imagine;
}
Complex& operator +(const Complex& lhs,const Complex& rhs) //重载复数加法函数友元函数
{
//return Complex(lhs.real + rhs.real,lhs.imagine + rhs.imagine);
Complex com_sum(0,0);
com_sum.real = lhs.real + rhs.real;
com_sum.real = lhs.imagine + rhs.imagine;
std::cout<<com_sum.real; //这里会输出 9