C++局部对象-临时对象
临时对象可以认为就是没有名字的对象,被创建出来后
#include<iostream>
#include<string>
int main(){
std::string tmp; //局部对象,并不是临时对象
}
class A{};
A get(){
A a;
return a; //返回时,创建临时对象。如果A有移动构造函数,则会触发
}
对象a在函数栈中被创建,在函数返回时已经被析构了,是不可以返回的,所以需要创建一个“临时对象”,如果A定义了移动构造,那么调用 A aa = get()时就会触发移动构造。
...