C++默认构造函数和默认参数

Fle*_*515 -1 c++ parameters polymorphism constructor default-parameters

如果我有一个类包含:

foo(); //sets baz to 10
foo(int bar = 0); //sets baz to bar
int baz;
Run Code Online (Sandbox Code Playgroud)

是否会使用'默认'构造函数?

例如:

foo qux;
Run Code Online (Sandbox Code Playgroud)

默认为baz = 0或10?

任何区别:

foo * quux = new foo;
Run Code Online (Sandbox Code Playgroud)

And*_*owl 6

是否会使用'默认'构造函数?

不,指定无参数的构造函数调用将是不明确的.编译器无法判断接受无参数的构造函数是否优于接受具有默认值的参数的构造函数,反之亦然.您的代码将无法编译.

任何区别: foo * quux = new foo;

不,同样的故事.如果您正在创建对象,则没有任何更改new.编译器仍然无法决定您打算调用哪个构造函数.