我正在编写一个包含数组的酒店程序
//数组的大小是该酒店的房间数
// array [i]包含房间i中的人,最多3人
一切都很完美(构造函数,复制构造函数,析构函数)我通过print函数检查它(它打印数组的内容--zeros)
直到我重新启动状态函数(在类中定义)自动填充数组内容并带有一些数字!
void status (const Hotel& o){
for (int i=0 ;i<o.numofrooms ;i++ ) {
if (o.arrayptr[i]=0)
cout<<"Room number "<<i<< " is available"<<endl;
else
cout<<"Room number "<<i<< " is unavailable"<<endl;
}
}
打印所有房间都不可用!谁在那里:D
答案 0 :(得分:1)
更改为
if (o.arrayptr[i] == 0); // you're using the assignment '=' instead of the comparison '=='
答案 1 :(得分:1)
您通过执行
来创建所有数组项目0o.arrayptr[i]=0
而不是
o.arrayptr[i]==0
答案 2 :(得分:1)
正如其他人已经指出的那样,将if(o.arrayptr [i] = 0)更改为if(o.arrayptr [i] == 0)。
为了捕获这样的错误,总是将常量放在相等比较的左侧。例如:
if (0 = o.arrayptr[i]) // flagged as an error by the compiler.
一个原因是如果你遗漏了其中一个=符号,编译器会为你找到错误。