类中的c ++动态数组

时间:2013-03-21 06:55:09

标签: c++ arrays class function

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

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

// 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

3 个答案:

答案 0 :(得分:1)

更改为

if (o.arrayptr[i] == 0); // you're using the assignment '=' instead of the comparison '=='

答案 1 :(得分:1)

您通过执行

来创建所有数组项目0
o.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.

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