【发布时间】:2015-12-31 02:48:14
【问题描述】:
我正在浏览我为学校项目编写的一些代码,仔细检查后我觉得这些代码很奇怪。我有一个类似于下面的课程:
class Foo {
public:
Foo(std::string s) : _s(s) {}
private:
std::string _s;
};
int main() {
std::string str = "Hiyo";
std::vector<Foo> f;
f.push_back(str); // Compiles. Weird to me though.
f.push_back(Foo(str)); // Predictably, this compiles as well.
return 0;
}
为什么第一次调用push_back 是一个有效的语句,即使str 不是Foo?
【问题讨论】:
标签: c++ type-conversion implicit-conversion