"&"标记之前的预期初始值设定项
expected initializer before ‘&’ token
我写了一个简单的例子,它来自于《c++编程语言第4版》
#include <ostream>
struct Entry{
string name;
int number;
}
ostream& operator<<(ostream& os, const Entry& e){
return os << "{"" << e.name << ""," << e.number << "}";
}
int main()
{
Entry a;
a.name = "Alan";
a.number = "12345";
return 0;
}
g++在编译时返回错误消息错误:在' & '标记
之前期望初始化项ps: the &上述Token属于ostream&操作符
谁能给点提示?
你有四个主要错误:
首先,您在结构声明后缺少分号。在每个class
或struct
声明之后,您需要添加;
。
其次,ostream
不是标识符,您可能想使用std::ostream
。<ostream>
标准头中的ostream
位于std
命名空间中。
第三,您缺少std::string
头,您应该使用std::
前缀引用string
类。
最后number
是int类型,不像字面量"12345"
是const char*
类型。你可能想写:a.number = 12345;
.
在所有这些修复之后,您的程序看起来像这样:
#include <ostream>
#include <string>
struct Entry{
std::string name;
int number;
};
std::ostream& operator<<(std::ostream& os, const Entry& e){
return os << "{"" << e.name << ""," << e.number << "}";
}
int main()
{
Entry a;
a.name = "Alan";
a.number = 12345;
}
相关文章:
- 没有找到相关文章