0

我正在编写一个包含数组的酒店程序

//数组的大小是该酒店的房间数

//array[i] 包含房间 i 中的人,最多 3 人

一切正常(构造函数,复制构造函数,析构函数)我通过打印函数检查它(它打印数组的内容-零)

直到我发布状态函数(在类中定义)用一些数字自动填充数组内容!

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

4

3 回答 3

1

改成

if (o.arrayptr[i] == 0); // you're using the assignment '=' instead of the comparison '=='
于 2013-03-21T06:57:56.807 回答
1

您通过执行使所有数组项为 0

o.arrayptr[i]=0

代替

o.arrayptr[i]==0
于 2013-03-21T06:59:52.577 回答
1

正如其他人已经指出的那样,将 if (o.arrayptr[i]=0) 更改为 if (o.arrayptr[i] == 0)。

为了捕获此类错误,请始终将常量放在相等比较的左侧。例如:

if (0 = o.arrayptr[i]) // flagged as an error by the compiler.

一个原因是,如果您遗漏了其中一个 = 符号,编译器会为您找到错误。

于 2013-03-21T07:09:32.950 回答