gpt4 book ai didi

c++ - 在创建对象 C++ 之前设置静态变量

转载 作者:太空狗 更新时间:2023-10-29 23:16:40 24 4
gpt4 key购买 nike

在创建对象之前,我需要将静态整数设置为零 (0)。

在 main.cpp 中调用函数 A::resetNumber()

在 a.h 中有 private: (static int number)和内联函数:static void resetNumber() { number = 0; }

但是结果:

/tmp/ccXtEOHO.o: In function `Treadmill::resetNumOfTreadmills()':
main.cpp:(.text._ZN9Treadmill20resetNumOfTreadmillsEv[_ZN9Treadmill20resetNumOfTreadmillsEv]+0x6): undefined reference to `Treadmill::numOfTreadmills'
/tmp/ccFNFppU.o: In function `Treadmill::Treadmill()':
treadmill.cpp:(.text+0x231): undefined reference to `Treadmill::numOfTreadmills'
treadmill.cpp:(.text+0x240): undefined reference to `Treadmill::numOfTreadmills'
treadmill.cpp:(.text+0x249): undefined reference to `Treadmill::numOfTreadmills'
collect2: error: ld returned 1 exit status

最佳答案

headers只是定义了一个class有什么的定义,你还需要为成员分配一些存储空间。

通常,对于非静态成员,对 new 的调用(或堆栈上的分配)将创建此存储。由于静态对于所有实例都是“全局”的,您不能以这种方式分配它们,因此您必须手动定义一些存储 - 在某个源文件中。

关于c++ - 在创建对象 C++ 之前设置静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22594812/

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