我有一個飛機類和此飛機有一個向量座類名爲「m_seat」。 在我的飛機的構造函數中,我使用了座位的數量作爲所需的參數,將m_seat矢量大小調整爲用戶所需的大小。這是我的代碼:使用包含靜態成員變量的類的向量
class Seat;
class Airplane {
vector<Seat> m_seat;
public:
Airplane(int);
};
class Seat{
static int m_seatNumber;
public:
Seat() { m_seatNumber += 10; }
};
int Seat::m_seatNumber = 100;
Airplane::Airplane(int numberOfSeats) {
for (int i = 0; i<numberOfSeats; ++i) {
m_seat.push_back();
}
}
int main()
{
Airplane(80);
return 0;
}
但它給了這個錯誤。
的std ::矢量< _Ty,_Aloc> ::沒有的push_back函數重載接受0參數,
,如果這確實是問題,我不知道我應該已經把我的push_back()?所以我嘗試{}
m_seat.push_back({});
它工作!
現在,我有另一個問題,它是我的主要問題(SO規則:一次只問一個問題!)所有座位數似乎增加到相同數!我還使用了矢量的「調整大小」成員函數,而不是該循環:
m_seat.resize(numberOfSeats);
但問題(同增加m_seatNumber的數量)仍然沒有解決。 非母語英語的發言者,對不起。
你推一個'Seat'對象很簡單嗎? 「Seat」類有一個靜態成員變量應該不是真的重要,應該嗎?看起來你的問題更多的是設計問題(或者說,缺乏設計)而不是代碼問題。 –
「所有座位數字似乎都增加到相同的數字!」 - 對不起,您能重新解釋嗎?你在期待什麼,你在看什麼?你想讓每個座位都有一個明顯的,增加的數字嗎? –
首先,爲什麼'm_seatNumber'是靜態的?不應該每個座位都有自己的號碼嗎? – NathanOliver