1. 程式人生 > >Boolan C++面向對象高級編程學習第五周

Boolan C++面向對象高級編程學習第五周

今天 子類 ace 常量 判斷 對象 重載方式 img 函數表

本周C++面向對象高級編程編程主要是講三個方面

1、虛表和虛指針

虛指針:如果類(包括父類)中有虛函數,就一定會有虛指針,虛指針是指向虛函數的虛表。

虛表:虛指針指向的一種類的表,表上存有類裏面虛函數的實現的指針

技術分享圖片

這裏虛函數和虛表一般是和類的多太性結合在一起來使用的,子類調用虛函數是通過調用虛指針來調用虛函數表裏面的指針再來實現函數特性

這種調用的方式叫做動態綁定,是一種通過指針類型自動來判斷調用的對象,在實現中可以不用區分哪個對象從而調用對應的函數

我們普通的調用類裏面的函數叫做靜態綁定

2、const

const之前的學習中有大量的提到過,今天對此進行了更深入的講解

技術分享圖片

從這個表中我們可以看出 常量對象不可以調用非常量的函數

那麽我們在寫一些類成員函數的時候,如果這個類不會改變類成員的時候,盡量加上const

不然出現了常量對象,卻無法調用該成員函數的問題

3、new和delete

之前我們簡單的介紹了new和delete,這裏主要是講解new和delete的重載

重載方式分為

1、全局重載

2、類中重載

3、placement重載

這裏placement重載有一個要註意的地方是我們重載了new(xx,xx)後,也重載了delete(xx,xx),但是我們

在調用的時候絕對不會調用其他版本的delete,只有在placement new拋出異常的時候,會調用相應的版本的delete

有些版本這裏也不會出現

Boolan C++面向對象高級編程學習第五周