自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣通過函數(shù)實現(xiàn)C++多態(tài)性

開發(fā) 后端
C++多態(tài)性就是多種表現(xiàn)形式,具體來說,可以用"一個對外接口,多個內(nèi)在實現(xiàn)方法"表示,多態(tài)性包含編譯時的多態(tài)性,運行時的多態(tài)性兩大類。

C++多態(tài)性主要體現(xiàn)在虛函數(shù)的調(diào)用,在C++中,虛函數(shù)的調(diào)用使用的是動態(tài)綁定,也有人說是晚捆綁,也就是在程序運行時才決定調(diào)用的函數(shù),即使程序員不知道對象類型,程序仍然可以作出適合該對象類型的行為。

簡單的說,虛函數(shù)就是在函數(shù)原型前加上virtual關鍵字。函數(shù)一旦被聲明為虛函數(shù),即使類在改寫它的時候沒有將其聲明為虛函數(shù),它從該點的繼承層次結(jié)構(gòu)中仍然是虛函數(shù)。如果基類中一個函數(shù)被聲明為虛函數(shù),在若干子類中有著不同的實現(xiàn),那么我們在創(chuàng)建若干子類的不同對象時,可以用基類的指針或者引用來指明子類對象并且調(diào)用相應子類的函數(shù)。

虛函數(shù)的定義方式如下:

◆類的靜態(tài)成員函數(shù)不可以定義為虛函數(shù);
◆類的構(gòu)造函數(shù)不可以定義為虛函數(shù);
◆非類的函數(shù)不可以定義為虛函數(shù)。

純虛函數(shù)是在聲明虛函數(shù)時初始化為0的函數(shù)。

  1. #include<memory> 
  2. #include<iostream> 
  3. using namespace std;  
  4. Virtual void print() const = 0;

抽象類

簡單的說,帶有一個或多個未實現(xiàn)的純虛函數(shù)的類是抽象類。如果一個類繼承自一個抽象類,但它沒有全部實現(xiàn)父類里面所有的純虛函數(shù),那么那些純虛函數(shù)在子類中仍然是純虛的,這個子類仍然是抽象類,仍然不能實例化對象。

抽象類是一種特殊的類,只能作為基類來使用,其純函數(shù)的實現(xiàn)由派生類給出。雖然不能實例化抽象類,但我們可以聲明一個抽象類的指針和引用,在實例化對象時,可以用不同的子類來實現(xiàn),從而實現(xiàn)多態(tài)性操作。只有當派生類將基類中的所有的純虛函數(shù)都實現(xiàn)的時候,它才不再是抽象類。

C++多態(tài)性

從廣義上說,C++多態(tài)性是指一段程序能夠處理多種類型對象的能力。在C++語言中,多態(tài)性可以通過強制多態(tài)、重載多態(tài)、類型參數(shù)化多態(tài)、包含多態(tài)等多種實現(xiàn)形式。所謂多態(tài)就是通過類的繼承,使得同一個函數(shù)可以根據(jù)調(diào)用他的對象的類型作出不同的響應。它也繼承和重載共同構(gòu)成面向?qū)ο蟮?大編程特性。

C++多態(tài)性通過虛函數(shù)來實現(xiàn),當我們用基類的指針來調(diào)用虛函數(shù)時,程序會根據(jù)對象的屬性選擇其自身的函數(shù)實現(xiàn)。即使程序員不知道對象類型,程序仍然可以作出適合該對象類型的行為。

C++語言支持兩種類型的多態(tài):一種是編譯時的多態(tài)(靜態(tài)多態(tài)),另一種是運行時的多態(tài)(動態(tài)多態(tài))。在編譯時的多態(tài)是通過靜態(tài)聯(lián)編實現(xiàn)的,而在運行時的多態(tài)則是通過動態(tài)聯(lián)編實現(xiàn)的。

【編輯推薦】

  1. C與C++中標準輸入實現(xiàn)方式上的一點區(qū)別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: NET130
相關推薦

2010-02-01 14:07:12

C++多態(tài)性

2009-09-01 14:51:19

C#多態(tài)性

2009-09-01 15:08:18

C#多態(tài)性

2009-08-28 16:48:50

C#多態(tài)性

2011-07-11 16:35:28

Java

2009-06-19 14:10:42

Java多態(tài)性

2011-07-11 16:45:25

JAVA多態(tài)性

2011-04-12 10:40:04

C++多態(tài)

2009-11-23 19:33:12

PHP5多態(tài)性

2010-02-03 10:50:33

C++多態(tài)

2010-02-05 15:59:26

C++函數(shù)重載

2009-09-24 17:19:06

運行時多態(tài)性

2024-01-23 10:13:57

C++虛函數(shù)

2010-01-27 13:31:10

C++ main()函

2023-10-20 09:51:00

編程開發(fā)

2010-11-22 16:01:08

C++多態(tài)

2010-01-22 11:13:16

C++靜態(tài)

2024-04-22 13:22:00

虛函數(shù)象編程C++

2011-07-15 00:47:13

C++多態(tài)

2011-03-08 09:40:26

Java多態(tài)性
點贊
收藏

51CTO技術(shù)棧公眾號