我收到这两个警告(在 MacOSX 上使用 GCC 4.2):
/Users/az/Programmierung/openlierox/build/Xcode/../../src/main.cpp:154:0 /Users/az/Programmierung/openlierox/build/Xcode/../../src/main .cpp:154:警告:“startMainLockDetector()::MainLockDetector”声明的可见性高于其字段“startMainLockDetector()::MainLockDetector::<anonymous>”的类型
/Users/az/Programmierung/openlierox/build/Xcode/../../src/main.cpp:154:0 /Users/az/Programmierung/openlierox/build/Xcode/../../src/main .cpp:154:警告:“startMainLockDetector()::MainLockDetector”声明的可见性比其基本“Action”更高
在这段代码中:
struct Action {
virtual ~Action() {}
virtual int handle() = 0;
};
static void startMainLockDetector() {
/* ... */
struct MainLockDetector : Action {
bool wait(Uint32 time) { /* ... */ }
int handle() { /* ... */ }
};
/* ... */
}
我不确定这些警告的含义(什么可见性?)以及如何解决它们。(我真的希望 MainLockDetector 类仅对该函数是本地的。)
我已经用许多其他编译器(clang、GCC 3.*、GCC 4.0、GCC 4.4 等)编译了相同的代码,并且从未收到任何关于此代码的警告。