我想要一个static const
char
我班上的数组。 GCC 抱怨并告诉我我应该使用constexpr
,尽管现在它告诉我这是一个未定义的引用。如果我将数组设置为非成员,那么它就会编译。到底是怎么回事?
// .hpp
struct foo {
void bar();
static constexpr char baz[] = "quz";
};
// .cpp
void foo::bar() {
std::string str(baz); // undefined reference to baz
}
添加到您的 cpp 文件:
constexpr char foo::baz[];
原因:您必须提供定义静态成员以及声明。声明和初始化器位于类定义内部,但成员定义必须分开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)