2014-07-01 34 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 
{ 
    // ... 
};