C++纯虚函数 virtual =0
生活随笔
收集整理的這篇文章主要介紹了
C++纯虚函数 virtual =0
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
純虛函數(pure virtual function)
class?Screen { public:virtual?void?Show()=0;??//?普通的虛函數后面加上"=0"這樣就聲明了一個pure?virtual?function };?在什么情況下使用純虛函數(pure vitrual function)?
當想在基類中抽象出一個方法,且該基類只做能被繼承,而不能被實例化;
這個方法必須在派生類(derived class)中被實現;
我們定義了一個類如下:
class?CShape {virtual?void?Show(){}; };但沒有CShape這種形狀,因此我們不想讓CShape這個類被實例化,我們首先想到的是將Show函數的定義(實現)部分刪除如下:
class?CShape {virtual?void?Show(); };當我們使用下面的語句實例化一個CShape時:
CShape?cs;??//這是我們不允許的,但僅用上面的代碼是可以通過編譯(但link時失敗)。我們再來看看被繼承的情況,我們需要一個CPoint2D的類,它繼承自CShape.他必須實現基類(CShape)中的Show()方法。
其實使用最初的本意是讓每一個派生自CShape的類,都要實現Show()方法,但時常我們可能在一個派生類中忘記了實現Show(),為了避免這種情況,pure virtual funcion發揮作用了。
轉載于:https://my.oschina.net/wellsoschina/blog/335112
總結
以上是生活随笔為你收集整理的C++纯虚函数 virtual =0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat 配置WEB虚拟映射 及
- 下一篇: 【win PE】磁盘分区大小的重新调整