C 的多型性

2021-09-24 16:37:58 字數 2422 閱讀 5543

c++的多型性主要是過載虛函式。(也就是靜態多型性和動態多型性)

一:先是過載,分為函式過載和運算子過載。

函 數重

載:\color

函式過載

:雖然函式名相同,但是函式內容不同,靠引數不同來區分。

例子:對 f() 進行過載:

#include

using namespace std;

intf

(int x,

int y)

//進行加法運算

floatf(

float x,

float y)

//進行乘法運算

運 算符

過載:\color

運算子過載:

(一般用於類,自定義輸出格式,自定義加法運算等等)

例:

#include

using namespace std;

class person

friend ostream & operator<<

(ostream & out,

const person &a);}

;ostream & operator <<

(ostream & out,

const person&a)

intmain()

輸出過載必須為友元函式,因為左邊的運算物件是cout流而不是物件本身說明:

ostr

eam的

引用為返

回值型別

,然後函

數名是o

pera

tor<

其實就是

和預設輸

出函式的

過載\color

說明:ost

ream

的引用為

返回值類

型,然後

函式名是

oper

ator

<

其實就是

和預設輸

出函式的

過載二:虛函式

簡單地說就是使用基類派生類中通過virtual關鍵字使得同名同參的函式共存

訪問時可以借助基類指標指向訪問

例:

#include

using namespace std;

class base //基類

virtual void

print()

};class derive: public base //派生類

雖然derive 類中有兩個print函式,而且引數也一樣,但是仍然可借助虛函式共存

在虛函式的基礎上,再介紹純虛函式:

在基類中沒有虛函式的具體定義,然後在各個派生類中再定義

class point    //基類:宣告純虛函式

;void line:

:draw()

//派生類:重新定義draw()

void circle:

:draw()

//派生類:重新定義

由純虛函式又衍生出了抽象類~(體現了何為物件導向)

基類主要用於集合各個派生類

class shape 	//抽象基類:shape

;double ********:

:area()

const

//派生類:重定義area()函式

double rectangle:

:area()

const

//派生類:重定義area()函式

double circle:

:area()

const

ps:const 表示常成員函式,不對資料進行

C 的多型性

c 的多型性 1.多型性的概念 多型性是指用乙個名字定義不同的函式,這函式執行不同但又類似的操作,從而實現 乙個介面,多種方法 多型性的實現與靜態聯編 動態聯編有關。靜態聯編支援的多型性稱為編譯時的多型性,也稱靜態多型性,它是通過函式過載和運算子過載實現的。動態聯編支援的多型性稱為執行時的多型性,也...

C 的多型性

type text css rel stylesheet href 是允許將父物件設定成為和乙個或多個它的子物件相等的技術,比如parent child 多型性使得能夠利用同一類 基類 型別的指標來引用不同類的物件,以及根據所引用物件的不同,以不同的方式執行相同的操作.c 中多型更容易理解的概念為允...

C 的多型性

c 的多型性分為兩種,一是執行時的多型性,二是編譯時的多型性,這裡我就不多介紹了。才是做好的說明,在 中有注釋以及我的理解。不知道自己這樣解釋是否正確。如下 執行時的多型性 include using namespace std 執行時的多型性是指直到系統執行時,才根據實際情況決定實現何種操作,執行...