我定义了以下结构,供多个类在应用程序中使用。
ZHTypes.h
#ifndef ZHTypes_h
#define ZHTypes_h
struct BeingHitParams
{
bool isApplyKnockBack=true;
};
BeingHitParams *default_BeingHitParams_ptr = new BeingHitParams();
#endif
我定义了以下变量
default_BeingHitParams_ptr
对于这种情况,我将在多个地方使用它作为函数的默认参数,因为我不需要一直创建新结构。
无论如何,每当我在类内的代码中引用它时,上面定义的变量都会产生链接错误。但是如果我在前面添加静态,那么它工作正常。
static BeingHitParams *default_BeingHitParams_ptr = new BeingHitParams();
所以我的问题是为什么我们不能从一个类中访问全局但非静态的变量?我还想知道为什么 C++ 在访问变量时受到限制的额外解释,如上述情况。