gpt4 book ai didi

C++ 错误 : type name is not allowed array

转载 作者:行者123 更新时间:2023-11-30 04:10:52 26 4
gpt4 key购买 nike

class Zombie
{
public:
Zombie();
Zombie(int howTall);
Zombie(int howTall, int howHeavy);
int getHeight();
private:
int height;
int weight;
};

Zombie::Zombie()
{
height = 6;
weight = 180;
}

int main()
{
Zombie army[4];

for(int i = 0; i < 4; i++)
army[i] = Zombie;

}

为什么当我尝试设置 army[i] = Zombie 时会出现错误? Army 是一个僵尸数组,我已经为 Zombie 类编写了默认构造函数。当我用 Zombie() 替换 Zombie 时,代码可以工作,但不应该也省略 () 调用默认构造函数吗?

未显示:其他构造函数和方法已实现。

我知道如果我将 army 声明为指向 Zombies 的指针数组并执行 army[i] = new Zombie 它会起作用,但我不知道为什么上面的代码不起作用。

谢谢

最佳答案

当你这样做时:

Zombie army[4];

您已经构建了 4 个高度 6 体重 180 的僵尸。默认构造函数被调用了 4 次(尝试在其中添加对 std::cout 的调用,您会看到! ).

因此,除非您想要(无论出于何种原因)再次构建新的僵尸,否则您不需要在循环中尝试做的事情em>。在这种情况下,正确的语法是:

army[i] = Zombie();

关于C++ 错误 : type name is not allowed array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20438798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com