gpt4 book ai didi

c++ - C++中的二维对象数组

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

我正在将科学代码从 Java 迁移到 C++。请告诉我:

a) 这两个函数有什么问题?
b) 我怎样才能解决这个问题?我可以像二维数组一样使用 int**,但不能使用 Agent**

我收到此错误:“没有运算符 = 匹配此操作数”

在普通的 C 中,我们可以将 NULL 分配给指针。我们也可以像二维数组一样使用type**(即a[i][j])(objectSpace的二维空间并且 agentSpace 被分配到其他地方)。

    int** objectSpace;
Agent** agentSpace;

void Space::removeAgentAt(Point p)
{
agentSpace[p.x][p.y] = NULL;
}

void Space::putAgentTo(Agent agent, Point p)
{
agentSpace[p.x][p.y] = agent;
}

最佳答案

agentSpace是指针,agentSpace[p.x]是指针,但是agentSpace[p.x][p.y]不是指针.

C++ 与 Java 不同;对象(通常)是按值引用的,而不是按引用引用的。

关于c++ - C++中的二维对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10733197/

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