请帮我

错误详细信息如下:


B::XTTB结构中的静态常量变量。

2969     if (index != B::XTT) {
2970         index_map_iter = lookup_index.find(merchandising_index);
2971         merchandising_index = index_map_iter != output_index.end() ? \
2972                index_map_iter->second : B::XTT;

非常奇怪的是,我第一次在第2969行使用B::XTT,它不会产生错误。但是在2972,我使用了B::XTT,它产生了一个错误。

而且,如果我在使用-O2命令时添加了g++选项,它不会产生错误。
但是,如果没有-O2,则确实会产生错误。

最佳答案

当您声明静态const成员变量时

class foo {
    // omitted other members
    static int MyConst;
};

您必须在一个编译单元中对其进行定义。
int foo:MyConst = 42;

07-24 14:03