class Foo
{
public:
Foo(){}
private:
Foo(const Foo &);
};
Foo f();
Foo f1 = Foo();
Run Code Online (Sandbox Code Playgroud)
我发现当我Foo(const Foo &)向私人宣布时,Foo f1 = Foo();不会编译.所以我认为Foo f1 = Foo(); 只是调用复制构造函数,但当我将我的代码更改为:
class Foo
{
public:
Foo(){}
Foo(const Foo &){std::cout<<"Foo(const Foo &)";}
};
Foo f();
Foo f1 = Foo();
Run Code Online (Sandbox Code Playgroud)
它没有打印任何东西.那么两个初始化有什么区别:Foo f(); Foo f = Foo()?
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |