从前面的学习知道,在返回一个类对象的时候,g++已经做了一些优化。
将
Teacher31 DoubleTeacher31(Teacher31 &teatemp) {Teacher31 tea;//1. 构造函数被调用 Teacher31 的 构造函数 被调用 000000AE5E2FF674tea.mage = teatemp.mage * 2;return tea;//2.调用拷贝函数将tea的值拷贝到一个临时对象中,return出去 Teacher31 的 copy构造函数 被调用 000000AE5E2FF7F4//3.然后把teatemp析构了。Teacher31 的 析构函数 被调用 000000AE5E2FF674
}
优化成
Teacher31 DoubleTeacher32(Teacher31 &teatemp) {return Teacher31(teatemp.mage * 2);
}
在linux下,G++已经完成了这样的行为。
因此在LINUX G++上,不需要额外的优化。
但是可以使用命令让g++不给我们优化
在Linux下,如果不优化,应该怎么执行命令呢?
命令为:其中a.cpp 为源文件名,-o 后面的aobj是你命名的文件名字