gpt4 book ai didi

c++ - 静态类成员上未解析的外部符号

转载 作者:IT老高 更新时间:2023-10-28 11:34:44 28 4
gpt4 key购买 nike

简单地说:

我有一个主要由静态公共(public)成员组成的类,因此我可以将仍然必须从其他类/函数调用的类似函数组合在一起。

无论如何,我已经在我的类公共(public)范围内定义了两个静态 unsigned char 变量,当我尝试在同一个类的构造函数中修改这些值时,我在编译时收到“未解析的外部符号”错误。

class test 
{
public:
static unsigned char X;
static unsigned char Y;

...

test();
};

test::test()
{
X = 1;
Y = 2;
}

我是 C++ 新手,所以请放轻松。为什么我不能这样做?

最佳答案

如果您使用的是 C++ 17,则可以只使用 inline 说明符(参见 https://stackoverflow.com/a/11711082/55721)


如果使用旧版本的 C++ 标准,则必须添加定义以匹配 X 和 Y 的声明

unsigned char test::X;
unsigned char test::Y;

某处。您可能还想初始化一个静态成员

unsigned char test::X = 4;

同样,您在定义中(通常在 CXX 文件中)而不是在声明中(通常在 .H 文件中)这样做

关于c++ - 静态类成员上未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/195207/

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