考虑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;}
};
用字符串字面量实例化类,猜猜调用了哪个构造函数?
foo a ("/path/to/file");
输出:
演员 2
我不了解你,但我认为这不是编程历史上最直观的行为。不过,我敢打赌,这有一些聪明的理由,我想知道那可能是什么?