考虑foo具有两个这样定义的构造函数的类:
class foo
{
public:
foo(const std::string& filename) {std::cout << "ctor 1" << std::endl;}
foo(const bool some_flag = false) {std::cout << "ctor 2" << std::endl;}
};
Run Code Online (Sandbox Code Playgroud)
使用字符串文字实例化类,并猜测调用哪个构造函数?
foo a ("/path/to/file");
Run Code Online (Sandbox Code Playgroud)
输出:
ctor 2
我不了解你,但我没有发现编程历史中最直观的行为.我打赌它有一些聪明的理由,但我想知道它可能是什么?