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 執行時的多型性是指直到系統執行時,才根據實際情況決定實現何種操作,執行...