C 的三大特性 封裝 繼承 多型

2021-06-03 18:10:01 字數 1723 閱讀 9762

多型的這個概念稍微有點模糊,如果想在一開始就想用清晰用語言描述它,讓讀者能夠明白,似乎不太現實,所以我們先看如下**:

//例程1  

#include

using namespace std;    

class vehicle  

void showmember()  

void showmember()  

virtual void showmember()//虛函式   

virtual void showmember()   

virtual ~vehicle()   

protected:   

float speed; 

int total; 

};   

class car:public vehicle     

virtual void showmember()   

virtual ~car()   

protected:   

int aird; 

};   

void test(vehicle &temp)   

void delpn(vehicle *temp)   

void main()   

從上例**的執行結果來看,當呼叫delpn(a);後,在析構的時候,系統成功的確定了先呼叫car類的析構函式,而如果將析構函式的virtual修飾去掉,再觀察結果,會發現析構的時候,始終只呼叫了基類的析構函式,由此我們發現,多型的特性的virtual修飾,不單單對基類和派生類的普通成員函式有必要,而且對於基類和派生類的析構函式同樣重要。

c++的三大特性:封裝、繼承、多型。以前學的時候自己沒去總結,記得在一本c++入門的書講得還是比較清楚。今天上網找了一下多型,找到下面這篇文章寫得比較清晰。

多型的這個概念稍微有點模糊,如果想在一開始就想用清晰用語言描述它,讓讀者能夠明白,似乎不太現實,所以我們先看如下**:

//例程1  

#include

using namespace std;    

class vehicle  

void showmember()  

void showmember()  

virtual void showmember()//虛函式   

virtual void showmember()   

virtual ~vehicle()   

protected:   

float speed; 

int total; 

};   

class car:public vehicle     

virtual void showmember()   

virtual ~car()   

protected:   

int aird; 

};   

void test(vehicle &temp)   

void delpn(vehicle *temp)   

void main()   

從上例**的執行結果來看,當呼叫delpn(a);後,在析構的時候,系統成功的確定了先呼叫car類的析構函式,而如果將析構函式的virtual修飾去掉,再觀察結果,會發現析構的時候,始終只呼叫了基類的析構函式,由此我們發現,多型的特性的virtual修飾,不單單對基類和派生類的普通成員函式有必要,而且對於基類和派生類的析構函式同樣重要。

C 三大特性 封裝,繼承,多型

c 三大特性 封裝,繼承,多型 封裝 定義 封裝就是將抽象得到的資料和行為相結合,形成乙個有機的整體,也就是將資料與運算元據的源 進行有機的結合,形成類,其中資料和函式都是類的成員,目的在於將物件的使用者和設計者分開,以提高軟體的可維護性和可修改性 特性 1.結合性,即是將屬性和方法結合 2.資訊隱...

三大特性 封裝,繼承,多型

重寫方法的規則 1 引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。2 返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。3 訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4 重寫方法一定...

三大特性 封裝 繼承 多型

物件導向的三大特性 封裝,繼承,多型 封裝 物件的便捷對物件的內部起到保護作用 資料隱藏 四種訪問修飾符 public公開 可以繼承 default本類和同包可以訪問 如果乙個屬性既不是public也不是private 那就預設是default 同包的子類可以繼承 private私有 只能在本類內部...