您的位置:首页 > 编程语言 > C语言/C++

C++运算符重载Sample

2012-12-02 00:00 232 查看
我认为C++最令人惊喜的特点之一就是运算符重载

运算符重载的基础是C++解析运算符时会调用函数

比如 MyObj a, b;
a+b;
则为
a.operator+(b);
或者调用友元函数
operator+(a, b);
要注意重载后的算符不要有二义性

<p>
这里举一些简单的示例

对于<<的重载,使用友元,通用形式

</p>
<p>
声明(在类public里面):
</p><p>
<!-- lang: cpp -->
<code>
friend ostream& operator<<(ostream& os, MyObj& my);
<code>
</p>
<p>
实现(Sample):
</p><p>
<!-- lang: cpp -->
<code>
return os<<my.a<<my.b<<endl;
</code>

</p>

<p>
对于前缀++(--)和后缀--(++)
</p>
<p>
声明:
</p><p>

<!-- lang: cpp -->
<code>
MyObj operator++();  //前缀式
</code>

</p><p>
<!-- lang: cpp -->
<code>
friend MyObj operator++(MyObj); //前缀式
</code>

</p>
<p>
<!-- lang: cpp -->
<code>
friend MyObj operator++(MyObj, int); //后缀式
</code>

</p>
注:后缀式的第二个参数没有什么用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 运算符重载 ++ -- <<