C++ C++;数组初始值设定项。使用枚举类型
嗨,有人知道上面的代码是怎么回事吗 我在VC++2008Ex的第二行中遇到了两个错误: 错误C2059:语法错误:“{” 错误C2334:在“{”之前出现意外的标记;跳过明显的函数体C++ C++;数组初始值设定项。使用枚举类型,c++,arrays,enums,initializer,C++,Arrays,Enums,Initializer,嗨,有人知道上面的代码是怎么回事吗 我在VC++2008Ex的第二行中遇到了两个错误: 错误C2059:语法错误:“{” 错误C2334:在“{”之前出现意外的标记;跳过明显的函数体 不能在这样的类中定义变量 它需要类似于: class ARouter { enum directions {north, neast, east, seast, south, swest, west, nwest}; static directions gon[] = {north, neast,
不能在这样的类中定义变量 它需要类似于:
class ARouter {
enum directions {north, neast, east, seast, south, swest, west, nwest};
static directions gon[] = {north, neast, nwest, east, west, seast, swest, south};
};
声明放在类主体中;定义放在外部。请注意,您通常会将类主体放在头中,将定义放在源文件中。这些行没有问题。您可能在文件的后面有语法错误,这导致编译器变得混乱。或者您正在定义变量在某个地方无效,比如在类主体内。发布更多代码,它在我这边编译。很好,没有问题;你的代码在g++4中运行良好。你确定吗?为了完整性,我只是将它括在一个小类中。我没有真正更改任何其他内容来打破它。我将取出这些行并重试。brb.Back.no,这些行是def在这种情况下,笔名“class variable”误导了我。
class ARouter {
enum directions {north, neast, east, seast, south, swest, west, nwest};
static directions gon[];
};
ARouter::directions ARouter::gon[] = {north, neast, nwest, east, west, seast, swest, south};