我宣佈這樣的結構:推到結構的載體,其向量的元素
struct Point{
double x,y;
Point(){}
Point(double xx,double yy): x(xx),y(yy){}
};
而且我試圖填補這樣的載體:
vector<Point> s(1);
Point tmp(1,2);
s[0]=tmp;
s.push_back(s[0]);
不幸,當我顯示s [1]的內容時,這樣做會給我一個錯誤的答案,但s.push_back((Point)s[0])
會導致期望的答案(例如s [0]的副本)。
是什麼 s.push_back(s[0])
和s.push_back((Point)s[0])
,說明這一點differennce之間的區別?
是否有任何自動類型轉換或引擎蓋下的東西?通過const引用(和由右值引用的其它過載)
's.push_back((Point [0]))'沒有意義,'Point'是一種類型。 – Borgleader
什麼錯誤/正確的答案是什麼? – Svalorzen
'vector s(2,Point(1,2))'會好得多。 –
DimChtz