非常简单地说:
我有一个主要由静态公共成员组成的类,因此我可以将类似的函数组合在一起,但仍然需要从其他类/函数调用它们。
无论如何,我在类公共作用域中定义了两个静态 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 文件中)执行此操作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)