博客
关于我
C++中的运算符重载(二)
阅读量:233 次
发布时间:2019-02-28

本文共 959 字,大约阅读时间需要 3 分钟。

C++操作符重载中的++操作符重载,以及<<操作符重载,都是C++编程中常见且重要的主题。其中,++操作符的重载尤其值得关注,因为它涉及到成员函数重载的应用。

在C++中,++操作符是用于自增操作的符号。为了实现对它的重载,可以使用成员函数重载的方式。重载后的++操作符可以有两种形式:一种是没有额外参数的operator ++(), 另一种是带有一个整数参数的operator ++(int). 这两种形式的区别在于,后者在调用时需要传递一个整数参数。

例如,重载后的operator ++()方法可以这样实现:

Check& Check::operator++() {    if (curr == end) throw out_of_range("increment past the end of check");    curr++;    return *this;}

而重载后的operator ++(int)方法则可以这样实现:

Check& Check::operator++(int) {    Check t(*this);    ++*this;    return t;}

需要注意的是,operator ++(int)调用时需要传递一个整数参数。例如,t3.operator++(0)表示从当前位置增加0个元素。

此外,关于<<操作符的重载,特别是输入操作符的重载,需要明确声明为友元操作符。因为输入操作符通常由标准库(如std::ostream) 定义,而友元操作符允许其他类扩展标准库的功能。

例如,可以定义如下友元操作符:

template
typename Check
::operator<<(ostream& os, Check
& a) { os << a.getx(); return os;}

这种方式允许operator<<操作符以友好的方式扩展到自定义类型中,同时确保左操作数符合标准库的要求。

总之,操作符重载是C++语言的一大特性,通过重载可以让操作符更加灵活地适应不同的需求。在实际编程中,理解操作符重载的机制,以及如何正确地重载输入和输出操作符,是掌握C++编程的关键。

转载地址:http://jawp.baihongyu.com/

你可能感兴趣的文章
Objective-C实现convolve卷积算法(附完整源码)
查看>>
Objective-C实现coulombs law库仑定律算法(附完整源码)
查看>>
Objective-C实现counting sort计数排序算法(附完整源码)
查看>>
Objective-C实现countSetBits设置位的数量算法(附完整源码)
查看>>
Objective-C实现currency converter货币换算算法(附完整源码)
查看>>
Objective-C实现cycle sort循环排序算法(附完整源码)
查看>>
Objective-C实现data transformations数据转换算法(附完整源码)
查看>>
Objective-C实现datamatrix二维码识别 (附完整源码)
查看>>
Objective-C实现DateToDay 方法算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现decision tree决策树算法(附完整源码)
查看>>
Objective-C实现degreeToRadian度到弧度算法(附完整源码)
查看>>
Objective-C实现depth first search深度优先搜索算法(附完整源码)
查看>>
Objective-C实现DES和3DES加解密算法(附完整源码)
查看>>
Objective-C实现des文件加密算法(附完整源码)
查看>>
Objective-C实现detectDirectedCycle检测定向循环算法(附完整源码)
查看>>
Objective-C实现detectUndirectedCycle检测无向循环算法(附完整源码)
查看>>
Objective-C实现deutsch jozsa算法(附完整源码)
查看>>
Objective-C实现DFS判断是否是二分图Bipartite算法(附完整源码)
查看>>