
调用拷贝构造函数的时机问题:如果函数返回值类型是对象引用,执行return语句时会不会调用拷贝构造函数?
看到两个版本:一个版本是当函数的返回值是类的对象或引用时会调用拷贝构造函数。另一个版本是当函数返回引用类型时,没有复制返回值,相反,返回的是对象本身。我是这么理解的:当函...
看到两个版本:
一个版本是当函数的返回值是类的对象或引用时会调用拷贝构造函数。
另一个版本是当函数返回引用类型时,没有复制返回值,相反,返回的是对象本身。
我是这么理解的:当函数返回引用类型时不能返回局部变量和形参只能返回this指针所指向的对象,返回的是对象本身,因此执行return语句时不会生成匿名对象也就没必要调用拷贝构造函数完成匿名对象的初始化,所以当函数返回值类型是对象引用时不会调用拷贝构造函数。我这么理解正确吗? 展开
一个版本是当函数的返回值是类的对象或引用时会调用拷贝构造函数。
另一个版本是当函数返回引用类型时,没有复制返回值,相反,返回的是对象本身。
我是这么理解的:当函数返回引用类型时不能返回局部变量和形参只能返回this指针所指向的对象,返回的是对象本身,因此执行return语句时不会生成匿名对象也就没必要调用拷贝构造函数完成匿名对象的初始化,所以当函数返回值类型是对象引用时不会调用拷贝构造函数。我这么理解正确吗? 展开
展开全部
你理解是对的,就看函数返回类型是不是引用,如果是,则不会拷贝,而是返回对象本身,当然此处要注意所返回对象的生命周期。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询