在下面的代码:静态函数和非静态变量
class A
{
public:
static void StaticFunction(int variable){ }
void NonStaticFunction() { }
private:
int nonStaticVariable;
};
我需要得到一个“变量”和“NonStaticFunction”
我已经尝试做“nonStaticVariable”静态和分配使用它的值为'变量',但是我仍然必须在'NonStaticFunction'中使用静态变量,这会引发链接器错误。
Error 2 error LNK2001: unresolved external symbol "public: static unsigned int A::staticVariable" ([email protected]@@2IA)
有没有解决它的办法?
我不知道你想在这里实现什么......你想要的设置为的所有实例的一些数据类,并且你需要在(non-'static')成员函数中使用这些数据? – BoBTFish
这个错误并不是因为你在一个非静态函数中使用静态变量,而是因为你必须**定义**(即告诉编译器为它分配内存而不是声明它)你的静态变量通过添加int A :: staticVariable;'在代码中的某处。 –