我有一个飞机类和此飞机有一个向量座类名为“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