语法错误:'{'之前缺少';'
syntax error : missing ';' before '{'
我写了一个带有两个属性(数组)的简单类。我正在尝试将所有数组元素初始化为 0 或 NULL,但编译器 (vc++ 2010) 向我抛出错误。
class Marina{
public:
char port[100];
char bport[25];
Marina(){
this->port = {0};
this->bport = {0};
}
};
我也尝试了一个简单的陈述,比如:
class Marina(){
public:
char port[100] = {0};
char port[25] = {0};
};
你需要这个:
Marina() : port(), bport() {}
这会用满零初始化两个数组。
在 C++11 中,您可以在声明点定义非静态成员变量,因此您可以执行以下操作:
class Marina {
public:
char port[100] = {0};
char bport[25] = {0};
};
Marina(){
//std::fill is in <algorithm>
std::fill (port, port + 100, 0);
std::fill (bport, bport + 25, 0);
此代码段缺少某些内容。没有结尾大括号!我用只要有支架就可以工作的东西替换了你的作业。
除此之外,您的代码仍然不会以这种方式编译,因为必须在初始值设定项列表中完成初始化:
Marina()
: port ({0}), bport ({0}) {}
您的大括号不匹配。您的开大括号比右大括号多一个。大括号不匹配的代码格式不正确。遗憾的是,响应缺少右大括号的编译器消息并不总是最清晰的。编译器如何知道您忘记用右大括号关闭哪个左大括号?
相关文章:
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 我该怎么做才能摆脱使用命名空间时的语法错误?
- 如何摆脱错误c2061;语法错误 cout?
- 语法错误:D3DX10Core 中的标识符'TEXTMETRICA'
- 错误 C2146:语法错误:标识符"A1"之前缺少","
- main.cpp(11):错误 C2059:语法错误:"字符串"
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- 如何修复此 FSM C++语法错误 C3867
- 函数错误 C2059:语法错误:'>'不起作用
- 为什么在main()之前断言会导致语法错误"error: expected ')' before numeric constant"?
- c++default-int中的语法错误
- "pip install openexr"上的语法错误:错误的编译器?
- 为什么我收到语法错误:在"*"之前缺少";"
- 错误 C2059:语法错误:从结构成员声明'constant'
- C++语法错误,编译器不会警告或 int v = func(&v) 出错;
- 我正在调试这个C++程序.编译器不再显示语法错误,但存在隐藏的逻辑错误