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

标签 c++ arrays object pointers

我正在将科学代码从 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/

相关文章:

c++ - 实现我自己的打印预览?

c++ - 在哪里可以在 Windows 上设置 make.exe 的路径?

php - 我应该如何使用 usort 按键对这个数组进行排序?

javascript - 尝试编写一个显示和更改某些对象属性的 JS 脚本

c++ - 引用和指针在哪里强制执行?

c++ - 为什么我的链表代码会导致链接错误?

arrays - 返回多个对象的cmdlet,它是什么收集类型? [电源外壳]

java - 二维数组(参差不齐)- 打印每列总和

python - 使用/执行列表中的字符串作为对象名称(python)

javascript - 使用对象中的键和值作为另一个对象的值