请参阅此处的主题:C++ object creation and constructor,句子Foo obj = Foo(1);
应包含两个对象创建:一个调用Foo(int)
,另一个调用Foo(const Foo&)
,即copy-ctor。 / p>
class Foo{
Foo(const Foo&){ //print "Foo(const Foo&) called" }
Foo(int i){//print "Foo(int) called" }
...
}
...
Foo obj = Foo(1);
上面的代码只打印“Foo(int)called”。在这种情况下它是如何工作的?由于我在ctors中添加了打印功能,因此编译器不应对其进行优化,对吧?