欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++运算符重载教程

程序员文章站 2022-05-24 19:04:10
1、格式: 返回值类型 operator 运算符名称(形参列表) { } operator 运算符名称 :可以看成函数名。 2、不能重载的运算符: 长度运算符 size...

1、格式:

返回值类型 operator 运算符名称(形参列表)

{

}

operator 运算符名称 :可以看成函数名。

2、不能重载的运算符:

长度运算符 sizeof 条件运算符 : ? 成员选择符. 对象选择符.* 域解析运算符 ::

3、重载不能改变运算符的优先级和结合性。

4、重载不会改变运算符的用法,原先有几个操作数,操作数在左边还是右边,这些都不会改变。例如~右边只有一个操作数,+总是出现在两个操作数之间,重载后也必须如此。

5、运算符重载函数不能有默认的参数。

6、运算重载函数既可以作为类的成员函数,也可以作为全局函数(friend友元)。

7、将运算符重载函数作为类的成员函数时,二元运算符的参数只有一个,一元运算符不需要参数。因为少了的这个参数是隐含的。

如: complex operator + (constcomplex & A)const

当执行 c3 = c1 + c2;

会被转换成: c3 = c1.operator +(c2);

外部:operator(c1,c2);

通过 this 指针隐士的访问 c1 的成员变量。

8、对象之间也可以赋值,对象之间的赋值是将成员变量依次拷贝,而不是将整个对象的内存按位拷贝。