我不止一次被这个问题所困扰:
class A{
public:
virtual ~A() {}
virtual int longDescriptiveName(){ return 0; }
};
class B: public A{
public:
virtual int longDescriptveName(){ return 1; } // Oops
};
如果函数是纯虚函数,编译器会捕获错误。但如果不是这样,这可能是一个可怕的错误。部分问题是函数名称可能太长了。但我仍然想知道,有没有办法更早地看到这些错误?