鱼C论坛

 找回密码
 立即注册
查看: 999|回复: 1

[学习笔记] C++快速入门P26运算符重载课上代码

[复制链接]
发表于 2023-12-15 13:57:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
#include <string>

class Complex
{
public:
        Complex();  //构造器
        Complex(double a,double b);  //函数重载
        virtual ~Complex();
   
        Complex operator + (Complex &d);
        void print();
       
private:
        double real;  //实部
        double imag;  //虚部

};

Complex::Complex()
{       
        real = 0;
        imag = 0;
       
        std::cout << "Complex 构造器++\n";       
}

Complex::Complex(double r,double i)
{       
        real = r;
        imag = i;       
}

Complex::~Complex()
{               
        std::cout << "Complex 析构器--\n";       
}

void Complex::print()
{       
        std::cout << "real = " << real << ",imag =" << imag << "\n";
}

Complex Complex::operator+(Complex &d)
{
        Complex c;

        c.real = real + d.real;
        c.imag = imag + d.imag;
       
        return c;
}

int main()
{
    Complex a(1,2), b(1,4), c;
       
    c = a + b;
       
    std::cout << "a:";
    a.print();
    std::cout << "b:";
    b.print();
    std::cout << "c:";
    c.print();
       
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-15 13:57:39 | 显示全部楼层
#include <iostream>

class Complex
{
public:
        Complex();  // 构造器
        Complex(double a, double b);  // 函数重载
        ~Complex();

        Complex operator+(const Complex &c);  // 运算符重载
        void print();

private:
        double real;  // 实部
        double imag;  // 虚部
};

Complex::Complex()
{
        real = 0;
        imag = 0;

        std::cout << "调用了无参构造函数" << std::endl;
}

Complex::Complex(double a, double b)
{
        real = a;
        imag = b;

        std::cout << "调用了带参构造函数" << std::endl;
}

Complex::~Complex()
{
        std::cout << "调用了析构函数" << std::endl;
}

Complex Complex::operator+(const Complex &c)
{
        Complex temp;
        temp.real = real + c.real;
        temp.imag = imag + c.imag;
        return temp;
}

void Complex::print()
{
        std::cout << "(" << real << " + " << imag << "i)" << std::endl;
}

int main()
{
        Complex c1(1.0, 2.0);
        Complex c2(3.0, 4.0);

        Complex result = c1 + c2;
        result.print();

        return 0;
}
这是一个简单的复数类,通过运算符重载实现了复数的加法运算。在类中,我们定义了一个无参构造函数和一个带参构造函数,用于初始化实部和虚部。然后,我们重载了"+"运算符,实现了两个复数对象之间的加法运算。最后,在main函数中,我们创建了两个复数对象c1和c2,并进行加法运算,将结果赋给result对象,并通过调用print函数打印出结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 23:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表