我試着寫在基類中的純虛函數,我給它的身體定義附近如代碼以下所示的它,因爲我知道我應該得到一個編譯錯誤,但是,一切都正常工作。 C++ 17中有新的東西嗎? (我使用視覺工作室2017)C++ 17中的純虛函數體?
class Base {
public:
virtual void virtual_func() { std::cout << "This a virtual function from BASE" << std::endl; };
virtual void pure_func() = 0 { std::cout << "This a PURE virtual function from BASE" << std::endl; };
};
由於
「我知道我應該得到的編譯錯誤」 - 爲什麼?實現純虛函數是完全合法的。 –
該標準不允許這樣做,但是VS(或者更確切地說,微軟的編譯器)可以。爲了符合,您需要將聲明中的定義分開。 –
@尼爾·巴特沃斯我不這麼認爲。它不能在C++ 14下編譯。 http://ideone.com/EISKsp – javaLover