我是c ++的新手。 我被告知在内部或外部调用构造函数是相同的。 为什么在明确调用构造函数的情况下不涉及赋值操作?
Object A(3) //implicit
Object A = Object(3); //explicit
我认为当我们做Object(3)时会创建一个对象; 那么这两件事情又如何相同呢?
答案 0 :(得分:0)
有关该主题的更多信息,请查看this answer,但在处理现有对象时会调用赋值运算符。您会注意到复制构造函数的类似行为:
Object A;
// the following two lines will call the copy constructor
// even if the assignment operator is defined.
Object B = A;
Object C(A);