[C++再学习系列] 二元操作符重载

简介:

 二元操作符@(+, -,*, /等)

     一般而言,对于某个二元操作符@,应定义其赋值形式,使a@=b和a=a@b具有相同的含义。一般第一种形式更加高效,因为仅计算一次a。具体实现的标准方法如下:

T& T::operator@=( const T& ) {

 // …implementation …

 return *this;

}

T operator@( const T& lhs, const T&rhs ) {

 T temp( lhs )

 return temp @= rhs;

}

    注意这里operator@是非成员函数,因此该函数能够接受左参数和右参数的隐式转换。

    从上述的具体实现中,可以知道operator@直接改变a的值,并返回a的引用。故可以有如下的使用方法:

      (a@=b).function() 即,因返回对象a,故可进一步操作对象。T operator@返回临时对象,故对该对象进行操作是没有意义的,应该先用具名变量获取该对象值,再操作具名变量。

---------------------------------------------------

兄弟的公司:立即购--手机购物,诚信网购

欢迎转载,请注明作者和出处。

本文转自 zhenjing 博客园博客,原文链接:  http://www.cnblogs.com/zhenjing/archive/2010/11/24/1886417.html ,如需转载请自行联系原作者


相关文章
|
15天前
|
存储 C++ 容器
C++STL(标准模板库)处理学习应用案例
【4月更文挑战第8天】使用C++ STL,通过`std:vector`存储整数数组 `{5, 3, 1, 4, 2}`,然后利用`std::sort`进行排序,输出排序后序列:`std:vector<int> numbers; numbers = {5, 3, 1, 4, 2}; std:sort(numbers.begin(), numbers.end()); for (int number : numbers) { std::cout << number << " "; }`
17 2
|
25天前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
26天前
|
存储 算法 数据库
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
103 0
|
1月前
|
C++
C++学习系列---读取文件名存入txt和从txt读取每行信息
C++学习系列---读取文件名存入txt和从txt读取每行信息
|
1月前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
164 0
|
18小时前
|
C语言 C++
c++的学习之路:4、入门(3)
c++的学习之路:4、入门(3)
7 0
|
18小时前
|
编译器 C++
c++的学习之路:23、多态(2)
c++的学习之路:23、多态(2)
4 0
|
21小时前
|
Java C++
C++的学习之路:21、继承(2)
C++的学习之路:21、继承(2)
5 0
|
21小时前
|
存储 C++ 容器
c++的学习之路:14、list(1)
c++的学习之路:14、list(1)
8 0
|
21小时前
|
存储 算法 C语言
c++的学习之路:9、STL简介与string(1)
c++的学习之路:9、STL简介与string(1)
3 0

热门文章

最新文章