2022.4.26 看书笔记

2022.4.26 看书笔记,第1张

C++primer:

1.默认实参:在函数实参之后,如果加上 = value,那么该实参会在没有用户提供形参时默认被赋值为value。
2.除了重载的调用运算符operator()之外,其他重载运算符不能含有默认实参。
3.一个重载运算符,要么是类的成员函数,要么含有至少一个类类型的参数。即,内置类型的运算符无法重载。
4.域运算符::,三目运算符?:,还有.*和.这四个运算符不能重载。
5.只能重载已有的运算符而不能发明新的运算符。
6.C++不支持变长数组,而C语言的C99支持变长数组。
7.重载的运算符的优先级和内置运算符相同。
8.data1 + data2与operator+(data1, data2)是等价的。
9.重载运算符不会保留内置运算符关于求值顺序的设定,并且短路求值等特性也不复存在。有些作用于类类型对象时
   就有特殊含义的运算符被重载后会失去这些特殊含义。所以这样的一些运算符是不建议被重载的(虽然可以)。
10.不建议重载的运算符:逗号,取地址,逻辑与,逻辑或。
11.用户定义的 *** 作符最好与内置类型的 *** 作符有逻辑上的相似,力求这个新 *** 作符对于用户而言是清晰明了的。
12.复合赋值运算符:就是先进行运算,再进行赋值。比如+=就是先+再=。
13.赋值、下标、函数调用、成员访问箭头必须是成员。
14.复合赋值运算符一般是成员。
15.递增递减和解引用是成员。
16.算数、相等性、关系和位运算通常不是成员。
17.如果运算对象中有类类型且运算对象是混合类型的(不是一个类型),那么为了使用对称性运算符,这个运算符
     必须定义为非成员运算符。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/786059.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-04
下一篇2022-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存