如何判断子类中的方法是基类的virtual实现还是自己新加的?
class BaseClass {
public:
virtual void method1() = 0;
};
class DerivedClass : public BaseClass {
public:
void method1() { return; }
void method2() { return; }
};
在阅读DerivedClass的类定义时,有没有什么好办法一眼就能看出method1()是它基类的一个虚函数,而method2()是自己的?读程序的时候这种需求是挺正常的吧?
[解决办法]
C++11增加新的关键字 override
class BaseClass {
public:
virtual void method1() = 0;
};
class DerivedClass : public BaseClass {
public:
void method1()override { return; }
void method2()/*如果这里有override则会报错*/ { return; }
};[解决办法]
楼上正解,是个好办法。
[解决办法]
题外话
如果是vs的IDE,右侧函数的属性里可以直接看到该函数的各种属性,如inline virtual static(表示为IsShared)等等