more effective c++(临时对象的返回值优化)
来源:互联网 发布:cms建站系统 java 编辑:程序博客网 时间:2024/04/29 18:12
#include <iostream>using namespace std;class A {public: const A operator + (const A & x) { // 返回const对象 A re(_a + x._a); cout << "operator + " << endl; return re; } A(int a = 0): _a(a){ cout << "construct " << _a << endl; } //赋值函数四步骤 //1,检查自赋值 //2,delete原内存 //3,new新内存 copy数据 //4,返回本对象引用 //原则:与内置类型行为一样 A& operator=(const A & x) { if(this == &x) return *this; _a = x._a; cout << "operator = " << endl; return *this; }private: int _a;};int main(int argc, char* argv[]){ cout << "Hello world!" << endl; A a(10); A b(20); A c = a + b; //函数内部临时对象和返回值临时对象都被 优化了,这编译器比较厉害。。(调用copy构造函数) c = a; //调用赋值函数 int aa = 0, bb = 10, cc = 20; (aa = bb) = cc; cout << aa << " " << bb << " " << cc << endl; return 0;}
测试编译器对临时对象的优化,书上说 operator+返回const才会被优化,但是我测试发现返回非const一样会被优化。。
另外学习了与内置类型相同的函数的写法
0 0
- more effective c++(临时对象的返回值优化)
- [More Effective C++]条款十九:理解临时对象的来源
- [More Effective C++]条款十九:理解临时对象的来源
- More Effective C++----(19)理解临时对象的来源
- 返回值优化(More Effective C++_20(效率))
- More Effective C++----(20)协助完成返回值优化
- [More Effective C++]条款22有关返回值优化的验证结果
- [More Effective C++]条款22有关返回值优化的验证结果
- 理解临时对象的来源(More Effective C++_19(效率))
- More Effective C++ --- 理解临时对象
- [More Effective C++]条款二十:协助完成返回值优化
- 临时对象与返回值优化
- More Effective C++ ——019_理解临时对象的来源
- More Effective C++之Item M19:理解临时对象的来源
- 临时对象和局部对象以及函数返回值优化
- C++中临时对象及返回值优化
- 转:C++中临时对象及返回值优化
- C++中临时对象及返回值优化
- 如何用js完美的解析lrc歌词
- bzoj3550【ONTAK2010】Vacation
- 黑马程序员--多态 内部类
- 版本控制器GIT、SVN初接触
- 03_单行函数 oracle学习笔记
- more effective c++(临时对象的返回值优化)
- leetcode -- Count Complete Tree Nodes -- 重点。BFS
- 明天决战英语四级
- bzoj1266【AHOI2006】上学路线route
- 生态系统评估-数据库设计
- HDOJ--2032
- 拥抱Android Studio:从Eclipse到Android Studio的完美迁徙
- GROUP BY 子句
- windows下打包cocos2d-x之自动复制第三方so文件