c++多态性
多態性(polymorphism)是指允許通一個函數(或是操作符)有不同版本,對于不同的對象執行不同的版本。c++支持一下兩種多態
(1)編譯時的多態性,表現為函數名(或操作符)的重載。
(2)運行時的多態性,表現為派生類和虛函數來實現。
函數名重載:編譯器能夠比較具有同名函數的特征,通過識別實參的數目和每個實參的類型,來標識適用于一個特定調用的哪一個版本。
操作符重載:可用同一個名字定義多種操作,這種能力叫做操作符重載。
?
虛函數和動態綁定
一個虛函數是一個在基類中被聲明為“virtual”,并在一個或多個派生類中被重新定義的函數。如果在基類聲明中,在一個函數的函數特征之前加一個關鍵字“virtual”,則編譯器將建立一個可由運行環境解釋的數據結構,并由程序執行時而不是編譯時由運行環境來執行對這個函數的調用。
一個抽象類必須作為基類而被其他類繼承,抽象類自己不能生成實例,就是說不能由類生成對象,因為抽象類中至少有一個函數沒有實現。如果一個基類中的某個函數聲明為純虛函數,則該基類的任何派生類都必須定義自己的實現。
“virtural”指定實際調用的成員函數將是在運行時動態調用確定的,而不是在編譯時確定的。這種做法叫做動態綁定(dynamic binding)。動態綁定在編譯性面向對象語言中是為了支持所包含的多態性。
本文轉自NewPanderKing51CTO博客,原文鏈接:http://www.cnblogs.com/newpanderking/p/3836955.html?,如需轉載請自行聯系原作者
總結
- 上一篇: C++socket网络编程(跨平台)实战
- 下一篇: s3c2440移植MQTT