的重载操作符的左操作数必须是类类型的对象。
最左边的操作数成为隐*此参数。所有其他操作数变功能参数。
大多数操作符可以重载,无论哪种方式,但是有一些例外情况:
如果左边的操作数不是类类型的成员,如当重载操作符+(int,yourclass),或运算符<<(ostream&,yourclass),操作者必须重载时是一个朋友。
分配(=),下标([]),叫(()),和成员选择(->)运营商必须重载成员函数。
重载一元负(-)算子
负算子是一元运算符,可以使用任一方法实现。在我们告诉你如何重载运算符使用一个成员函数,这是一个提醒我们如何使用友元函数的重载:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Cents
{
private:
int m_nCents;
public:
Cents(int nCents) { m_nCents = nCents; }
// Overload -cCents
Cents operator-();
};
// note: this function is a member function!
Cents Cents::operator-()
{在几乎所有的好处,也有一些潜在的不利的例外以及。本文并不完整,但只是想指出一些重大问题时应该考虑使用异常(或决定是否使用它们)。
清理资源
其中一个最大的问题,新的程序员遇到时使用的例外是清理资源时发生异常问题。考虑下面的例子:
5661

被折叠的 条评论
为什么被折叠?



