Aktualisiere Frage: Warum wir haben "Ich werde konstruiert". Und wo kann ich das lehnen ?. Ich lese C++ Buch an der Universität, aber ich habe das gefunden.Wie Konstruktor arbeiten
Im so leid, weil einige Fehler.
#include <vector>
#include <string>
#include <iostream>
struct President {
std::string name;
std::string country;
int year;
President(std::string p_name, std::string p_country, int p_year)
: name(std::move(p_name))
, country(std::move(p_country))
, year(p_year)
{
std::cout << "I am being constructed.\n";
}
President(President&& other)
: name(std::move(other.name))
, country(std::move(other.country))
, year(other.year)
{
std::cout << "I am being moved.\n";
}
President& operator=(const President& other) = default;
};
int main()
{
std::vector<President> reElections;
std::cout << "\npush_back:\n";
reElections.push_back(President("Franklin Delano Roosevelt", "the USA", 1936));
for (President const& president : reElections) {
std::cout << president.name << " was re-elected president of "
<< president.country << " in " << president.year << ".\n";
}
}
Ausgang:
push_back: ich gebaut bin zu werden. Ich werde bewegt.
\ nDanke Ihnen so sehr.
Was verwirrt Sie? Die Konstruktorfunktion heißt hier: 'President (" Franklin Delano Roosevelt "," die USA ", 1936)' –
Wenn Sie ein * Objekt *, eine * Instanz * einer Klasse erstellen, wird dieses Objekt * konstruiert * und das entsprechende Konstruktor wird aufgerufen. –
Sie haben Ihr Beispiel von cppreference. cplusplus.com/reference und cppreference.com sind die zwei verschiedenen, konkurrierenden, online C++ - Referenzen – Cubbi