首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同时具有const和non指针数组的能力

同时具有const和non指针数组的能力
EN

Stack Overflow用户
提问于 2014-10-27 23:03:02
回答 1查看 65关注 0票数 0

我试图用下面的代码来解决电磁仿真问题。我的Node类有一个成员函数,它接受问题数组,并基于相邻节点进行计算。

我们有一些约束,为了实现这些约束,我将这些节点创建为const。例如,x+和y+边缘保持在100。

然后,当一个const节点被要求计算一个新值时,它就什么也不做了,这要归功于类声明中的以下函数定义:

代码语言:javascript
运行
复制
void iteration( Node* array);
void iteration( const Node* array) const;

其余代码如下所示:

代码语言:javascript
运行
复制
#include "node.h"


int main () {
    int max_x = 10;
    int max_y = 10;

    Node* problem[max_x][max_y];

    int i, j;

    for (i = 0; i < max_x; i++) {
        for (j = 0; j < max_y; j++) {
            if ((i == max_x) || (j == max_y)) {
                problem[i][j] = new const Node(i, j, 100);
            }
        }
    }
    return 0;
}

我走错路了吗?我得到的错误是:

代码语言:javascript
运行
复制
assigning Node * from incompatible type const Node *.

显然是因为我不能做一个const节点而不是const节点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 23:07:16

您应该从新节点声明中删除const

代码语言:javascript
运行
复制
problem[i][j] = new Node(i, j, 100);

或将节点数组声明为

代码语言:javascript
运行
复制
const Node* problem[max_x][max_y];

一般来说,编译器可能对const <type><type> (以及指向它们的指针)有不同的对待,因此不鼓励将它们混合(可以强制使用不安全的const,但不建议这样做)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26598303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档