假設我有一個結構(或我只用於存儲類)填充doubles
s。我做一個構造函數分配給那些doubles
S:自動創建成員,如果他們用於建設
struct Point {
double time;
double x;
double y;
Point(double a_time, double a_x, double a_y)
: time(a_time), x(a_x), y(a_y) {}
}
這似乎是多餘的,如果他們在構造函數中已經聲明在類中聲明成員。 有沒有辦法減少這些冗餘,使構造函數中使用的成員自動成爲類的公共成員?也可能對其他成員函數有用。
這個例子類似於Programming: Principles and Practice Using C++的第348頁上的例子。所以這是當代已建立的編碼風格。 此外,我正在尋找一種現代C++風格的解決方案,意思是沒有預處理器。
更新(1) 這個結構需要在以下方式中使用:
vector<Point> points
points.push_back(t0,x0,y0)
你可以圍繞它做在某些情況下其他的方式:HTTP:// WWW2 .research.att.com /〜bs/C++ 0xFAQ.html#member-init – chris 2012-07-20 21:45:33
你有什麼建議當類有多個構造函數? – 2012-07-20 21:48:33
爲什麼要聲明構造函數中使用的所有類的public成員? – Martin 2012-07-20 21:48:56