运算符重载

知识梗概

1.一个简单的实例-“+”实现负数相加
2.运算符重载函数:类成员函数和友元函数的区别

正文

1.一个简单的实例-“+”实现负数相加

//“+”实现复数的加法
#include<iostream>
using namespace std;
class Complex{
    public:
        Complex(){
            real = 0;imag = 0;
        }
        Complex(double real,double imag){
            this->real = real;
            this->imag = imag;
        } //定义构造函数
        Complex operator + (Complex &c2); //声明运算符重载,返回对象:Complex 
        void display();
    private:
        double real;
        double imag;
}; 
Complex Complex::operator + (Complex &c2){
    return Complex(real+c2.real,imag+c2.imag);   //返回临时对象 
}
void Complex::display(){
    cout<<"(real,image)="<<"("<<real<<","<<imag<<")"<<endl;
}
int main(){
    Complex c1(3.0,4.0),c2(1,2),c3,c4;
    c3 = c1+c2; //运行机制:c2为形参,“+”由c1调用,c1.operator+(c2) 
    c4 = c1.operator +(c2);  //等同于上一行 
    cout<<"c3=";c3.display();
    cout<<"c4=";c4.display();
    
    return 0; 
}




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。