首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么判断子类中的方法是基类的virtual实现还是自己新加的

2013-10-18 
如何判断子类中的方法是基类的virtual实现还是自己新加的?class BaseClass {public:virtual void method1(

如何判断子类中的方法是基类的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)等等

热点排行