C++语言基础 例程 运算符重载的方法

简介: 贺老师的教学链接  本课讲解以复数的加法为例:用成员函数实现复数加法#include <iostream>using namespace std;class Complex{public: Complex( ) { real=0; imag=0; } Complex(double r,double i

贺老师的教学链接  本课讲解


以复数的加法为例:用成员函数实现复数加法

#include <iostream>
using namespace std;
class Complex
{
public:
    Complex( )
    {
        real=0;
        imag=0;
    }
    Complex(double r,double i)
    {
        real=r;
        imag=i;
    }
    Complex add(Complex &c2);
    void display( );
private:
    double real;
    double imag;
};
Complex Complex::add(Complex &c2)
{
    Complex c;
    c.real=real+c2.real;
    c.imag=imag+c2.imag;
    return c;
}
 
void Complex::display( )
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
 
int main( )
{
    Complex c1(3,4),c2(5,-10),c3;
    cout<<"c1=";
    c1.display( );
    cout<<"c2=";
    c2.display( );
    c3=c1.add(c2);
    cout<<"c1+c2=";
    c3.display( );
    return 0;
}


运算符重载的方法

#include <iostream>
using namespace std;
class Complex
{
public:
    Complex( )
    {
        real=0;
        imag=0;
    }
    Complex(double r,double i)
    {
        real=r;
        imag=i;
    }
    Complex operator+(Complex &c2);
    void display( );
private:
    double real;
    double imag;
};
Complex Complex::operator+(Complex &c2)
{
    Complex c;
    c.real=real+c2.real;
    c.imag=imag+c2.imag;
    return c;
}
 
void Complex::display( )
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
 
int main( )
{
    Complex c1(3,4),c2(5,-10),c3,c4;
    
    cout<<"c1=";
    c1.display( );
    cout<<"c2=";
    c2.display( );
    c3=c1+c2;  //c3=c1.operator+(c2);
    cout<<"c1+c2=";
    c3.display( );
    return 0;
}


实现operator+=(Complex &c2)?

#include <iostream>
using namespace std;
class Complex
{
public:
    Complex( )
    {
        real=0;
        imag=0;
    }
    Complex(double r,double i)
    {
        real=r;
        imag=i;
    }
    Complex & operator += (const Complex & c);
    void display( );
private:
    double real;
    double imag;
};
Complex & Complex::operator += (const Complex & c)
{
    real += c.real;
    imag += c.imag;
    return *this;
}
void Complex::display( )
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
 
int main( )
{
    Complex c1(3,4),c2(5,-10);
    c1+=c2;
    cout<<"c1=";
    c1.display();
    return 0;
}


目录
相关文章
|
24天前
|
存储 C++
C++语言中指针变量int和取值操作ptr详细说明。
总结起来,在 C++ 中正确理解和运用 int 类型地址及其相关取值、设定等操纵至关重要且基础性强:定义 int 类型 pointer 需加星号;初始化 pointer 需配合 & 取址;读写 pointer 执向之处需配合 * 解引用操纵进行。
136 12
|
6月前
|
存储 负载均衡 算法
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
164 15
|
6月前
|
存储 算法 安全
企业员工数据泄露防范策略:基于 C++ 语言的布隆过滤器算法剖析[如何防止员工泄密]
企业运营过程中,防范员工泄密是信息安全领域的核心议题。员工泄密可能致使企业核心数据、商业机密等关键资产的流失,进而给企业造成严重损失。为应对这一挑战,借助恰当的数据结构与算法成为强化信息防护的有效路径。本文专注于 C++ 语言中的布隆过滤器算法,深入探究其在防范员工泄密场景中的应用。
108 8
|
10月前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
260 5
|
11月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
236 5
|
12月前
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
135 6
|
11月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
11月前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2
|
11月前
|
编译器 Linux C语言
深入计算机语言之C++:C到C++的过度-1
深入计算机语言之C++:C到C++的过度-1
118 0
|
JavaScript 前端开发 Java
通过Gtest访问C++静态、私有、保护变量和方法
通过Gtest访问C++静态、私有、保护变量和方法
288 0