Stavo guardando un codice che ho scritto per un progetto scolastico, che a un esame più attento mi sembrava strano. Ho avuto una classe simile a quello qui sotto:Spingere indietro la stringa sul vettore di oggetti
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;
}
Perché è la prima chiamata a push_back
una dichiarazione valida, anche se non è un str
Foo
?
Questa dovrebbe essere la risposta accettata in quanto parla di 'esplicito' – CinCout