更新の質問: 私はなぜ私は建設されている。 そして、どこでそれを傾けることができますか? 私は大学でC++の本を読んでいますが、私はそれを見つけました。どのようにコンストラクタの仕事
何か間違いがありますのでごめんなさい。
#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";
}
}
出力:
一back: 私が構築されています。 私は動いています。
\ nありがとうございました。
あなたを混乱させる原因は何ですか? 'President(" Franklin Delano Roosevelt "、" USA "、1936)' –
クラスの*オブジェクト*、*インスタンス*を作成すると、そのオブジェクトは*構築され、適切なものが作成されます。コンストラクタが呼び出されています。 –
あなたはcppreferenceからあなたの例を得ました。 cplusplus.com/referenceとcppreference.comは、2つの異なる、競合するオンラインC++リファレンスです。 – Cubbi