मैं स्कूल कोड के लिए मैंने जो कुछ कोड लिखा था, उसे ब्राउज़ कर रहा था, कि एक करीबी निरीक्षण में मुझे अजीब लग रहा था।ऑब्जेक्ट्स के वेक्टर को वापस स्ट्रिंग को धक्का देना
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
नहीं है: मैं एक वर्ग नीचे एक के समान था?
यह स्वीकार्य उत्तर होना चाहिए क्योंकि यह 'स्पष्ट' के बारे में बात करता है – CinCout