C++ 虛函數(shù)的詳解及簡單實例
C++ 虛函數(shù)的詳解
虛函數(shù)的使用和純虛函數(shù)的使用。
虛函數(shù)是在基類定義,然后子類重寫這個函數(shù)后,基類的指針指向子類的對象,可以調(diào)用這個函數(shù),這個函數(shù)同時保留這子類重寫的功能。
純虛函數(shù)是可以不用在基類定義,只需要聲明就可以了,然后因為是純虛函數(shù),是不能產(chǎn)生基類的對象,但是可以產(chǎn)生基類的指針。
純虛函數(shù)和虛函數(shù)最主要的區(qū)別在于,純虛函數(shù)所在的基類是不能產(chǎn)生對象的,而虛函數(shù)的基類是可以產(chǎn)生對象的。
// 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;
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
帶你用C語言實現(xiàn)strtok和字符串分割函數(shù)
下面小編就為大家?guī)硪黄猚語言中字符串分割函數(shù)及實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-09-09
c++調(diào)用動態(tài)庫LNK2019和LNK1120無法解析的外部命令
本文主要介紹了c++調(diào)用動態(tài)庫LNK2019和LNK1120無法解析的外部命令, 出現(xiàn)這個錯誤一般都是函數(shù)只找到聲明但沒有實現(xiàn),或者是少了什么鏈接庫,下面就來解決一下2024-06-06

