多型的這個概念稍微有點模糊,如果想在一開始就想用清晰用語言描述它,讓讀者能夠明白,似乎不太現實,所以我們先看如下**:
//例程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私有 只能在本類內部...