【发布时间】:2011-02-19 04:49:32
【问题描述】:
我收到这两个警告(在 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::
/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 等)编译了相同的代码,并且从未收到任何关于此代码的警告。
【问题讨论】:
-
<anonymous>是什么字段?请贴出本地课堂的内容。 -
好的,这就是完整的结构(没有代码)。
标签: c++ gcc visibility warnings gcc-warning