相同class的各个实例互为友元
-
返回值
- 返回引用是好的,但并不总是可行,主要问题是局部变量作用域的问题
- 有了右值引用和(N)RVO的存在,实际上大多数时候也不用特意返回引用
-
操作符重载
双目运算符为什么必须是非成员函数? --> 没有这种必要性,只是典型实践,视频的理由(加号和正号同时作为成员函数会冲突这种说法是错误的,全部作为成员函数也不会有任何问题)
重载的运算符作为成员函数,例如+=,需要修改调用者实例本身(this指针指向的内容)
重载的运算符作为友元函数,例如+,无须对调用者实例本身进行修改
重载运算符作为非成员函数,<<
os << foo();中,<<作用在os上,ostream类中不可能有operator(os, const Foo&)这个成员函数, 类似的还有>>通常不需要修改调用者实例本身的运算符也无需重载为成员函数
operator=的返回值使用const修饰是有好处的,(x=5)=y这种奇葩行为有了const修饰的operator=会报错,不过不考虑也没问题,没人会这么写代码
加号和正号的区分,依赖于参数个数
临时对象的概念会带来RAII这种现代C++鼓励的用法
Geekband C++ Week1 Notes
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- GeekBand C++ Week1 Notes A.OOP-面向对象编程 1基础:C语言 -变量variable...