gpt4 book ai didi

c++ - Unresolved external symbol 欢闹

转载 作者:行者123 更新时间:2023-11-27 23:16:54 26 4
gpt4 key购买 nike

我通过 StackOverflow 上的类实现发现了一种类 Java 枚举的新颖方法。

在它自己的头文件中声明的符号类

class Symbols {

public:

Symbols() {}

static const Symbols CREATE;
. . .
private:

std::string the_symbol;

// Symbols constructor
Symbols (std::string symbol){
this->the_symbol = symbol;
}

public:

std::string get_symbol(void) {
return the_symbol;
}

void set_symbol(std::string new_value) { the_symbol = new_value; }

void initialize(void){
const Symbols CREATE = Symbols("create");
. . .
}
};

以多种方式在类里面使用

bool RecursiveDescentParser::type_name(){
if (accept(Symbols::STRING) || accept(Symbols::INTEGER)){
return true;
}
else
return false;

}

symbol_ = Symbols::WHERE;

if (!boost::iequals(tokenizer_->peekAtNext(), symbol_.get_symbol(), loc_)){
// complete any tokens
std::string temp = tokenizer_->completeToken();
}

Symbols header 包含在多个类中。有很多类型的编译器错误

1>recursive_descent_parser.obj : error LNK2001: unresolved external symbol "public: static class Symbols const Symbols::VALUES" (?VALUES@Symbols@@2V1@B)

什么给了?我收到了所有 39 个 Unresolved external 问题,其中一些与这个问题无关。我正在正确定义头文件以确保没有重复声明并且所有类都能正确编译。

最佳答案

您已经声明了静态成员;但它也需要在一个源文件中定义和初始化。

const Symbols Symbols::CREATE("create");

我猜你认为这就是 initialize 函数所做的;但它只是创建一个 Symbols 类型的本地对象,然后在函数返回时销毁它。

关于c++ - Unresolved external symbol 欢闹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com