2014-07-01 27 views
0

是否可以声明从另一个类继承的类(Bar)(BarBasefinal?或者,当一个类从另一个类继承(使用虚拟方法)时,C++会限制它声明各个方法final声明一个不合格的类final

class BarBase 
{ 
public: 
    virtual void DoSomething() = 0; 
}; 

class Bar : public BarBase final // not legal to add 'final' here, why? 
{ 
public: 
    void DoSomething(); final // Legal to add 'final' here, but doing it for every method is less than ideal. 
}; 
+1

制作成员函数'final',不应该在*分号之前完成* –

+2

至于你的问题,请参阅[此参考资料](http://en.cppreference.com/w/cpp/language/final)。 –

+3

'class Bar final:public BarBase {...};' – nosid

回答

4

作为评论中的状态,关键字final错位。正确的语法是:

class Bar final : public BarBase 
{ 
    // ... 
};