读书人

回来类类型的函数

发布时间: 2012-08-31 12:55:03 作者: rapoo

返回类类型的函数

如果一个函数返回类类型,在编译器无优化的情况下,如果函数返回值不用于赋值或初始化变量,则调用类的拷贝构造函数将返回值赋给一个临时变量;如果返回值用于赋值,则先调用类的拷贝构造函数将返回值赋给一个临时变量,再调用赋值运算符,将临时变量赋值给被赋值的变量;如果返回值用于初始化类变量,则函数返回时,调用类的拷贝构造函数将返回值拷贝给被初始化的变量。以上三种情况参见下面的测试代码和输出:


[00403378] A () called---------------------------[0012FF5C] A () called[0012FF5C] ~A () called---------------------------[0012FF5C] A () called[00403378] A::operator= () called[0012FF5C] ~A () called---------------------------[0012FF60] A () called[0012FF60] ~A () called[00403378] ~A () called


读书人网 >编程

热点推荐