临时对象

定义

  • C++直接调用构造函数。会创建临时对象。
  • 临时对象没有对象名,它的生命周期只有一条语句。
  • 如果直接调用构造函数,赋值给一个具体的名字,则会使用复制初始化。则不是临时对象。

使用

  • 如果做为函数参数使用。调用的是复制噶偶早函数。
1
2
vector<vector<int> > vec;
vec.push_back(vector<int>(5));//直接调用构造函数,会创建临时对象。
  • 如果作为返回值使用。调用的是复制构造函数。
1
2
3
vector<int> hello(){
return vector<int>();
}