更新問題: 爲什麼我們有「我正在構建」。 而我可以在那裏傾斜?我在大學讀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";
}
}
輸出:
的push_back: 我正在興建。 我正在感動。
\ n非常感謝您。
什麼讓您感到困惑?在這裏調用構造函數:'President(「Franklin Delano Roosevelt」,「the USA」,1936)' –
當你創建一個類的*對象*,*實例*時,該對象被構造*並且適當的正在調用構造函數。 –
你從cppreference中得到了你的例子。 cplusplus.com/reference和cppreference.com是兩個不同的競爭在線C++參考文獻 – Cubbi