C 中对静态变量的未定义引用
在 C 中使用静态变量时,开发人员经常遇到错误“对静态变量的未定义引用” ”。本文探讨了这个问题,并提供了不使用静态方法的解决方案。
问题:
考虑以下代码:
class Helloworld { public: static int x; void foo(); }; void Helloworld::foo() { Helloworld::x = 10; };
这代码触发“未定义引用”错误,因为静态变量 x 在非静态方法 foo() 中被引用,但它缺少
解决方案:
要解决此问题,必须在类定义之外为静态成员变量 x 提供定义。这可以通过如下方式实现:
class Helloworld { public: static int x; void foo(); }; // Define the static variable outside the class int Helloworld::x = 0; void Helloworld::foo() { Helloworld::x = 10; };
通过将初始值指定为 0 或不定义,x 将被零初始化。或者,可以指定更合适的初始值。
以上是为什么在 C 中出现'未定义的静态变量引用”错误以及如何在不使用静态方法的情况下修复该错误?的详细内容。更多信息请关注PHP中文网其他相关文章!