c ++:实例化对象

时间:2012-08-17 10:29:45

标签: c++ object instantiation

  

可能重复:
  C++ Object Instantiation vs Assignment

我对C ++很陌生,想知道实例化对象之间有什么区别(如果有的话)

int main () {
  vector< int > x(2);
}

int main () {    
  vector< int > x = vector< int > (2); 
}

除了后者需要更长时间才能写入。提前谢谢!

1 个答案:

答案 0 :(得分:7)

差异很大程度上是语法上的:

  • vector<int> x(2); 直接初始化

  • vector<int> x = vector<int>(2);复制初始化

后者正式要求该类具有可访问的拷贝构造函数,但实际上该拷贝将被省略,并且这两个版本产生完全相同的代码。

你应该总是喜欢直接初始化。

你也可以疯了:

  • vector<int> x = vector<int>(vector<int>(vector<int>(2)));