c++ - 无法在 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++ 语言的类范围内不能有表达式语句。所有表达式语句都必须在函数定义中。
删除线structure[0] = 1;
。
您可以改为提供默认成员初始化程序,structure
就像您已经为isConv
.
class net{
public:
bool isConv = false;
int structure[2] {1, 0};
};
请注意,如果您希望使用默认成员初始化程序,则不得使用默认初始化,除非您提供用户定义的构造函数。改为这样做:
net n{};
cout << n.structure;
推荐阅读
- c - 为什么 fgetc 不在 eof 处停止
- javascript - 使用 JS 切换每个框的下拉列表
- javascript - 如何为 SVG rect 设置动画以从下到上填充?
- java - 为什么我的有效 MS access_token 不能用 jwt.ms 解析?
- c++ - 头文件的使用
- mediawiki - mediawiki 页面上的转发链接列表
- java - 执行程序关闭等待终止不起作用
- azure - Azure 存储帐户 - 异地复制:异地复制的频率是多少?如果发生故障,数据丢失会是多少?
- xcode - macOS 中的音频单元 (AUv3) 仅适用于 DAW 中的选定轨道
- reactjs - 未处理的拒绝(TypeError):无法读取未定义的属性“查找”