运算符重载

多态性是面向对象程序设计的重要特征之一。
多态性:发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。
多态的实现:编译时的多态:在编译的过程中确定同名操作的具体对象,通过函数重载、运算符重载来完成。
运行时的多态:程序运行前无法根据函数名和参数来确定该调用哪个函数,必须在程序执行的过程中,根据具体的情况来动态的确定。通过类继承、虛函数来完成。
在这里插入图片描述
多态性是面向对象程序设计的重要特征之一。
多态性:发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。
多态的实现:编译时的多态:在编译的过程中确定同名操作的具体对象,通过函数重载、运算符重载来完成。
运行时的多态:程序运行前无法根据函数名和参数来确定该调用哪个函数,必须在程序执行的过程中,根据具体的情况来动态的确定。通过类继承、虛函数来完成。
在这里插入图片描述

例题
#include< iostream>
using namespace std;
class Complex //复数类声明
{
public: //外部接口
Complex(double r=0.0,double i=0.0)
{ real=r; imag=i; } //构造函数
Complex operator + (Complex c2); //+重载为成员函数
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 Complex(c.real,c.imag);
}
Complex Complex::operator - (Complex c2) //重载函数实现
{
Complex c;
c.real=real-c2.real;
c.imag=imag-c2.imag;
return Complex(c.real,c.imag);
}
void Complex::display()
{cout<<"("<<real<<","<<imag<<")"<<endl; }
int main() //主函数
{ Complex c1(5,4),c2(2,10),c3; //声明复数类的对象
cout<<“c1=”; c1.display();
cout<<“c2=”; c2.display();
c3=c1-c2; //使用重载运算符完成复数减法
cout<<“c3=c1-c2=”; c3.display();
c3=c1+c2; //使用重载运算符完成复数加法
cout<<“c3=c1+c2=”; c3.display();
}
/*
c1=(5,4)
c2=(2,10)
c3=c1-c2=(3,-6)
c3=c1+c2=(7,14)

Process returned 0 (0x0) execution time : 2.996 s
Press any key to continue.
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值