首页 > 解决方案 > 无法在 C++ 中修改类中的数组

问题描述

我是 C++ 新手。我刚刚在 Visual Studio Code 中编写了这个程序,但是我收到了两个我没有找到解释的错误。

这是代码:

#include <iostream>
using namespace std;
class net{
    public: bool isConv = false;
    public: int structure[2];
    structure[0] = 1;      
};
int main() {
    net n;
    cout<< n.structure;
    return 0;
}

我收到的错误是:

错误:C++ 需要所有声明的类型说明符”在第 5 行

错误:第 6 行中的重复成员“结构”

我认为代码认为我正在尝试定义一个structure在第 6 行中调用的新变量,而我只是尝试修改数组的第一个值。

如果它们在main()函数中,相同的两行代码可以正常工作,但在类中它们似乎不起作用。

谁能帮我理解为什么我有这些错误,以及如何解决它们?

标签: c++arraysclassglobal-variables

解决方案


赋值是一个表达式。后跟分号的表达式是表达式语句。在 C++ 语言的类范围内不能有表达式语句。所有表达式语句都必须在函数定义中。

删除线structure[0] = 1;

您可以改为提供默认成员初始化程序,structure就像您已经为isConv.

class net{
public:
    bool isConv = false;
    int structure[2] {1, 0};   
};

请注意,如果您希望使用默认成员初始化程序,则不得使用默认初始化,除非您提供用户定义的构造函数。改为这样做:

net n{};
cout << n.structure;

推荐阅读