C++ Primer Chapter 14-1
来源:互联网 发布:python sql显示前10行 编辑:程序博客网 时间:2024/06/05 03:23
1: 除重载函数调用运算符 operator() 之外,所有其他的重载运算符不能包含默认实参。
2: 当一个运算符是成员函数时,他的显示实参总是比运算符的运算对象少一个,因为左侧的对象会被绑定到隐式的 this 指针上。非成员则参数与运算对象个数一样。
3:内置类型的运算符是不可以重载的。
4:运算符的调用可以用间接的方法,就是一般我们所用的加减乘除那种,也可以用
operator+(data1,data2)
像普通函数的调用。
5:对于某些有求值顺序的运算符,因为重载无法保留其运算符的求值顺序或者短路属性,所以不可以重载该类运算符。一般不要重载逗号、取地址、逻辑与、逻辑或,这些运算符。
6:运算符的返回类型通常情况下应该与内置内型返回类型兼容。
7:对于重载运算符来说,一定不要清晰,不能有二义性,否则就不是好的重载。
8:我们应该选择好运算符是为成员函数还是普通函数。一般规则 见 page493
9:对于有对称性的运算符,或者运算符调用具有不确定性对象的运算符,一般为非成员函数。比如double + int ,可以改成 int + double.这就是对称的运算。
10:string 的非成员函数 operator+
string s = "world";
string t = s + "!";
string u = "hi" + s;
这里的第三行,类似于调用
operator+("hi",s);
这样 "hi" 可以正确的转换为 string 便可以了。两个参数中有一个 string 类型就行了。
11: operator << (ostream &, const T &)
第一个参数为不可以赋值的 ostream 的引用,第二个参数是一个常量引用,避免拷贝,然后避免修改。
12:输出运算符应当尽量减少格式控制,把格式控制留给用户来控制更好!否则用户得不到自己想要的格式。也必须是非成员函数。因为 ostream 不可能使我们的一个对象。一般为友元!
0 0
- C++ Primer Chapter 14-1
- c primer plus Chapter 14 p383
- 《C primer plus》笔记--Chapter 1
- C++Primer-Function chapter
- C primer plus -- Chapter 2
- C++ Primer Chapter 1
- C++ Primer Chapter 14-2
- C++ Primer Chapter 14-3
- C++ Primer Chapter 14-4
- C++ Primer Chapter 14-5
- C++ Primer Chapter 6-1
- C++ Primer Chapter 7-1
- C++ Primer Chapter 8-1
- C++ Primer Chapter 9-1
- C++ Primer Chapter 10-1
- C++ Primer Chapter 11-1
- C++ Primer Chapter 12-1
- C++ Primer Chapter 13-1
- redis教程(九)之redis Set
- HTTP协议之状态码详解
- 前段进阶——首写JS
- mybatis增删改查
- 数字信号中的频率
- C++ Primer Chapter 14-1
- 正则全部符号解释
- Java 相关[陆续更新]
- C++ Primer Chapter 14-2
- Map集合
- Machine Learning第五讲[神经网络: 学习] --(二)实践中的BP算法
- C++ Primer Chapter 14-3
- c++对象模型
- 字符串练习