C ++重载虚函数警告
当编译以下代码时,clang发出警告: struct Base { virtual void * get(char* e); // virtual void * get(char* e, int index); }; struct Derived: public Base { virtual void * get(char* e, int index); }; 警告是: warning: 'Derived::get' hides overloaded virtual function [-Woverloaded-virtual] (当然需要启用上述警告)。 我不明白为什么。请注意,取消注释Base中的同一声明会关闭警告。我的理解是,由于两个get()函数具有不同的签名,因此无法隐藏。 c是正确的吗?为什么? 请注意,这是在运行最新版本Xcode的MacOS X上。 clang --version Apple LLVM version 5.0 …