c ++ copy-constructor vs赋值运算符

时间:2015-08-04 17:37:56

标签: c++ copy-constructor assignment-operator

关于密切相关的主题有很多SO问题,但我找不到一个能完全解决我问题的问题。

假设:

std::vector<int> a, b;

以下两种情况之间的区别是什么:

std::vector<int> c(a); // case c(a)
std::vector<int> d = a; // case d=a

以及后来:

c(b); // c(b): does this make sense?
c = b; // or is this better? and if so, why?

1 个答案:

答案 0 :(得分:-2)

C(b)是最好的方法......这将调用构造函数,这意味着您的对象将在您开始使用之前构建。

最好的方法是理解这一点,如果你创建const对象的第二种方法会给出错误说对象是只读的,而第一种方法是可行的。