C++面向对象#重载运算符和重载函数

运算符重载:
如果不做特殊处理,C++ 的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。有时希望对象之间也能用这些运算符进行运算,以达到使程序更简洁、易懂的目的。利用 C++ 提供的“运算符重载”机制,赋予运算符新的功能,就能解决用+将两个复数对象相加这样的问题。
1、概要:运算符重载,就是对已有的运算符赋予多重含义,使同一运算符作用于不同类型的数据时产生不同的行为。
2、作用:使得 C++ 中的运算符也能够用来操作对象。
3、实质:编写以运算符作为名称的函数,也可称为运算符函数。
4、运算符函数的格式如下:
返回值类型 operator 运算符(形参表)
{

}
5、注意:
1)被重载的运算符的表达式会被编译成对运算符函数的调用,运算符的操作数成为函数调用时的实参,运算的结果就是函 数的返回值。运算符可以被多次重载。
2)运算符可以被重载为全局函数,也可以被重载为成员函数。一般来说,倾向于将运算符重载为成员函数,这样能够较好地体现运算符和类的关系。
3)赋值运算符=要求左右两个操作数的类型是匹配的,或至少是兼容的。有时希望=两边的操作数的类型即使不兼容也能够成立,这就需要对=进行重载。C++ 规定,=只能重载为成员函数。必要时需要重载赋值运算符=,以避免两个对象内部的指针指向同一片存储空间。
函数重载:
在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。例子如下:
#include
using namespace std;
class printData
{
public:
void print(int i) {cout << "整数为: " << i << endl; }
void print(double f) {cout << "浮点数为: " << f << endl; }
void print(char c[]) {cout << "字符串为: " << c << endl;}
};
int main(void)
{
printData pd;
pd.print(5);// 输出整数
pd.print(500.263);// 输出浮点数
char c[] = “Hello C++”;
pd.print©;// 输出字符串
return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值