编译以下代码时,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中取消注释相同的声明会closures警告。 我的理解是,由于get()函数具有不同的签名,因此不能隐藏。 是铿锵的吗? 为什么? 注意这是在MacOS X上运行最新版本的Xcode。 clang –version Apple LLVM version 5.0 (clang-500.1.74) (based […]