【发布时间】:2021-05-30 06:03:12
【问题描述】:
我将更复杂的代码简化为这个给出相同错误的简单示例:
class MyClass {
int i;
public:
void someFunction() {
struct MyStruct {
void someOtherFuction() {
i++;
}
};
MyStruct mystruct;
mystruct.someOtherFuction();
}
};
配合相应的main函数:
#include "MyClass.h"
int main(int argc, char* argv[]) {
MyClass myClass;
myClass.someFunction();
}
错误是:
A nonstatic member reference must be relative to a specific object
所以我将int i; 修改为static int i;,但后来又出现了另一个错误:
unresolved external symbol "private: static int MyClass::i"
谁能告诉我解决这个问题的方法是什么?
【问题讨论】:
-
C++ 不是 java。
MyStruct无论如何都不是MyClass的一部分,因此没有可以使用的i。