C++ 运算符重载

运算符重载

l 运算符重载: C++能将运算符( + - * / 等)的定义扩展到运算分量是对象的情况,并且重载后运算符的运算顺序和优先级不变,这样使得C++ 代码更直观,更易读。

l 示例

ClassA

{

……

}

A a,b,c,d;

d=a+b*d

l 双目运算符重载

非成员形式重载 红色 及成员形式重载 金色

classA

{

public:

A(ints){a=s;}

friendAoperator+(A&x,A&y);// 两个形参对象

Aoperator–(A&y) // 一个形参对象

{

intt=a-y.a;

Ar(t);

returnr;

}

private:

inta;

};

Aoperator+(A&x,A&y)

{

intm=x.a+y.a;

An(m);

returnn;

}

l 单目运算符(增量运算符)重载

前增量重载( 红色 )、后增量重载( 橙色

classA

{

public:

A(ints){a=s;}

A&operator++()

{

a++;

return*this;

}

Aoperator++(int)

{

Atemp(*this);

a++;

returntemp;

}

private:

inta;

};

l 赋值运算符重载

A& operator=(A&s)

{

a=s.a;

return*this;

}

l 本课题目

编写一个复数类 Complex 和一个整数类 Increase ,其中复数类基本属性是实部和虚部,整数类的基本属性是数值大小,自己构建成员函数让程序完成以下主函数的各执行语句。

voidmain()

{

Complexa(3,2),b(2,3),c;

c=a+b; //’+’ 运算符重载, 成员函数形式实现

c.print(); // 输出复数ai+b

c=a-b; //’ - 运算符重载, 非成员函数形式实现

c.print();

Increased(100);

((++d)++)++.print(); // 前增量、后增量运算符重载, 成员函数形式实现

d .print(); // 输出整数大小

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值