C++ 虛函數的詳解
虛函數的使用和純虛函數的使用。
虛函數是在基類定義,然后子類重寫這個函數后,基類的指針指向子類的對象,可以調用這個函數,這個函數同時保留這子類重寫的功能。
純虛函數是可以不用在基類定義,只需要聲明就可以了,然后因為是純虛函數,是不能產生基類的對象,但是可以產生基類的指針。
純虛函數和虛函數最主要的區別在于,純虛函數所在的基類是不能產生對象的,而虛函數的基類是可以產生對象的。
// pointers to base class #include <iostream> using namespace std; class Polygon { protected: int width, height; public: void set_values (int a, int b) { width=a; height=b; } virtual int area(){ return 0; } }; class Rectangle: public Polygon { public: int area() { return width*height; } }; class Triangle: public Polygon { public: int area() { return width*height/2; } }; int main(){ Polygon *p1,*p2; Rectangle rec; Triangle tri; p1 = &rec; p2 = &tri; p1->set_values(1,2); p2->set_values(2,4); cout << rec.area() << endl; cout << tri.area() << endl; cout << p1->area() << endl; cout << p2->area() << endl; return 0; }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答
圖片精選