注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計C++新經(jīng)典:對象模型

C++新經(jīng)典:對象模型

C++新經(jīng)典:對象模型

定 價:¥79.00

作 者: 王健偉 著
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302551263 出版時間: 2020-06-01 包裝: 平裝
開本: 16 頁數(shù): 264 字?jǐn)?shù):  

內(nèi)容簡介

  本書是一部介紹C++對象模型知識的書,意在探究C++幕后的秘密,講述C++編譯器的故事。內(nèi)容涉及很多不被常人所知的C++對象內(nèi)部工作原理以及底層的一些具體實現(xiàn)機制方面的知識。本書共分為7章: 第1章介紹書中范例所涉及的演示環(huán)境搭建、如何創(chuàng)建基本的C++程序,以及對程序進行跟蹤和斷點調(diào)試的方法。第2章的主題是對象,包括以對象所占內(nèi)存大小為講解切入點詳述對象結(jié)構(gòu)的發(fā)展和演化; 構(gòu)造、拷貝構(gòu)造、移動構(gòu)造函數(shù)語義; 深淺拷貝、成員初始化列表等內(nèi)容。第3章的主題是虛函數(shù),包括虛函數(shù)表指針、虛函數(shù)表的概念和細(xì)節(jié); 更進一步涉及多重繼承的虛函數(shù)表分析和各種輔助工具的講解。第4章的主題是數(shù)據(jù)語義學(xué),包括類中的數(shù)據(jù)成員布局、數(shù)據(jù)成員存取,涉及單一繼承、單類單繼承、多重繼承等情況下的數(shù)據(jù)成員布局; 二層、三層結(jié)構(gòu)時虛基類表內(nèi)容、與this指針調(diào)整等問題。第5章的主題是函數(shù)語義學(xué),包括普通成員函數(shù)、虛函數(shù)、靜態(tài)成員函數(shù)調(diào)用方式; 靜態(tài)、動態(tài)綁定以及多態(tài)性的詳細(xì)體現(xiàn)分析和析構(gòu)函數(shù)必須是虛函數(shù)原因的著重解釋; 多重繼承第二虛基類詳談、RTTI實現(xiàn)原理、inline函數(shù)細(xì)說等內(nèi)容。第6章的主題是對象構(gòu)造語義學(xué),包括對象構(gòu)造順序,對象復(fù)制、析構(gòu)函數(shù)語義; 局部、全局對象的構(gòu)造和析構(gòu),臨時對象詳細(xì)探討等內(nèi)容。第7章的主題是模板實例化語義學(xué),重點對模板的實例化進行了詳細(xì)的分析。這是一本C++進階類圖書,要求學(xué)習(xí)者具備一定的C++開發(fā)基礎(chǔ),適合作為C++編程人員的參考讀物。

作者簡介

  王健偉男,1976年9月生,網(wǎng)名狂想(KuangXiang),1995年畢業(yè)于哈爾濱工程大學(xué)計算機及應(yīng)用專業(yè),擁有20多年軟件開發(fā)經(jīng)驗,參與開發(fā)過數(shù)十個實際項目,涉及網(wǎng)絡(luò)通信、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)游戲等領(lǐng)域,具備極其深厚的軟件開發(fā)實戰(zhàn)經(jīng)驗。曾參與創(chuàng)辦深圳知名網(wǎng)絡(luò)安全公司安絡(luò)科技有限公司,是中國首套網(wǎng)絡(luò)安全在線掃描評估系統(tǒng)項目負(fù)責(zé)人、全球同服獨立游戲《冒險之路》制作人。

圖書目錄



目錄


第1章演示環(huán)境介紹和準(zhǔn)備

1.1演示環(huán)境搭建說明

1.2創(chuàng)建最基本的能運行的C++程序

1.3Visual Studio中程序的調(diào)試方法

第2章對象

2.1類對象所占用的空間

2.2對象結(jié)構(gòu)的發(fā)展和演化

2.3this指針調(diào)整

2.4分析obj(目標(biāo)文件)與構(gòu)造函數(shù)語義

2.5拷貝構(gòu)造函數(shù)語義與移動構(gòu)造函數(shù)語義

2.5.1拷貝構(gòu)造函數(shù)語義

2.5.2移動構(gòu)造函數(shù)語義

2.6程序轉(zhuǎn)換語義

2.6.1定義時初始化對象

2.6.2參數(shù)的初始化

2.6.3返回值初始化

2.7程序的優(yōu)化

2.7.1從開發(fā)者層面的優(yōu)化

2.7.2從編譯器層面的優(yōu)化

2.8程序優(yōu)化續(xù)、拷貝構(gòu)造函數(shù)續(xù)與深淺拷貝

2.8.1程序優(yōu)化續(xù)

2.8.2拷貝構(gòu)造續(xù)

2.8.3深淺拷貝

2.9成員初始化列表

2.9.1何時必須用成員初始化列表

2.9.2使用初始化列表的優(yōu)勢

2.9.3初始化列表的細(xì)節(jié)探究

第3章虛函數(shù)

3.1虛函數(shù)表指針位置分析

3.2繼承關(guān)系作用下虛函數(shù)的手工調(diào)用

3.3虛函數(shù)表分析

3.4多重繼承虛函數(shù)表分析

3.5輔助工具與vptr、vtbl創(chuàng)建時機

3.5.1使用輔助工具查看虛函數(shù)表

3.5.2虛函數(shù)表的創(chuàng)建時機

3.6單純的類不純時引發(fā)的虛函數(shù)調(diào)用問題





第4章數(shù)據(jù)語義學(xué)

4.1數(shù)據(jù)成員綁定時機

4.1.1成員函數(shù)函數(shù)體的解析時機(整個類定義完畢后)

4.1.2成員函數(shù)參數(shù)類型的確定時機(最近碰到原則)

4.2進程內(nèi)存空間布局

4.3數(shù)據(jù)成員布局

4.3.1觀察成員變量地址規(guī)律

4.3.2邊界調(diào)整與字節(jié)對齊

4.3.3成員變量偏移值的打印

4.4數(shù)據(jù)成員的存取

4.4.1靜態(tài)成員變量的存取

4.4.2非靜態(tài)成員變量的存取

4.5單一繼承下的數(shù)據(jù)成員布局

4.6單類單繼承虛函數(shù)下的數(shù)據(jù)成員布局

4.6.1單個類帶虛函數(shù)的數(shù)據(jù)成員布局

4.6.2單一繼承父類帶虛函數(shù)的數(shù)據(jù)成員布局

4.6.3單一繼承父類不帶虛函數(shù)的數(shù)據(jù)成員布局

4.7多重繼承數(shù)據(jù)布局與this調(diào)整深談

4.7.1單一繼承數(shù)據(jù)成員布局this指針偏移知識補充

4.7.2多重繼承且父類都帶虛函數(shù)的數(shù)據(jù)成員布局

4.8虛基類問題的提出和初探

4.8.1虛基類(虛繼承/虛派生)問題的提出

4.8.2虛基類初探

4.9兩層結(jié)構(gòu)時虛基類表內(nèi)容分析

4.9.1虛基類表內(nèi)容之5~8字節(jié)內(nèi)容分析

4.9.2各種形式的繼承

4.9.3虛基類表內(nèi)容之1~4字節(jié)內(nèi)容分析

4.10三層結(jié)構(gòu)時虛基類表內(nèi)容分析與虛基類設(shè)計原由

4.10.1三層結(jié)構(gòu)時虛基類表內(nèi)容分析

4.10.2虛基類為什么這樣設(shè)計

4.11成員變量地址、偏移與指針等重申

4.11.1對象成員變量內(nèi)存地址及其指針

4.11.2成員變量的偏移值及其指針

4.11.3成員變量指針和不指向任何成員變量的成員變量指針

第5章函數(shù)語義學(xué)

5.1普通成員函數(shù)調(diào)用方式

5.2虛成員函數(shù)與靜態(tài)成員函數(shù)調(diào)用方式

5.2.1虛成員函數(shù)調(diào)用方式

5.2.2靜態(tài)成員函數(shù)調(diào)用方式

5.3虛函數(shù)地址問題的vcall引入

5.4靜動態(tài)類型、綁定、坑點與多態(tài)體現(xiàn)深談

5.4.1靜態(tài)類型和動態(tài)類型

5.4.2靜態(tài)綁定和動態(tài)綁定

5.4.3繼承的非虛函數(shù)坑

5.4.4虛函數(shù)的動態(tài)綁定

5.4.5重新定義虛函數(shù)的缺省參數(shù)坑

5.4.6C++中的多態(tài)性

5.5單繼承虛函數(shù)趣味性測試和回顧

5.5.1單繼承下的虛函數(shù)

5.5.2回顧和一些小試驗

5.6多繼承虛函數(shù)深釋、第二基類與虛析構(gòu)必加

5.6.1多繼承下的虛函數(shù)

5.6.2如何成功刪除用第二基類指針new出來的子類對象

5.6.3父類非虛析構(gòu)函數(shù)時導(dǎo)致的內(nèi)存泄露演示

5.7多繼承第二基類虛函數(shù)支持與虛繼承帶虛函數(shù)

5.7.1多重繼承第二基類對虛函數(shù)支持的影響(this指針調(diào)整作用)

5.7.2虛繼承下的虛函數(shù)

5.8RTTI(運行時類型識別)回顧與存儲位置簡介

5.8.1RTTI(運行時類型識別)簡單回顧

5.8.2RTTI實現(xiàn)原理

5.8.3vptr、vtbl與RTTI的 type_info信息創(chuàng)建時機

5.9函數(shù)調(diào)用與繼承關(guān)系性能

5.9.1函數(shù)調(diào)用中編譯器的循環(huán)代碼優(yōu)化

5.9.2繼承關(guān)系深度增加,開銷也增加

5.9.3繼承關(guān)系深度增加,虛函數(shù)導(dǎo)致的開銷增加

5.10指向成員函數(shù)的指針和vcall

5.10.1不用類對象能否調(diào)用類的虛函數(shù)和普通成員函數(shù)

5.10.2指向成員函數(shù)的指針

5.10.3指向虛成員函數(shù)的指針和vcall

5.10.4vcall在繼承關(guān)系中的體現(xiàn)

5.11inline函數(shù)回顧和擴展

5.11.1inline函數(shù)回顧

5.11.2inline擴展


第6章對象構(gòu)造語義學(xué)

6.1繼承體系下的對象構(gòu)造

6.1.1對象的構(gòu)造順序

6.1.2虛函數(shù)

6.1.3構(gòu)造函數(shù)中對虛函數(shù)的調(diào)用

6.2對象復(fù)制語義學(xué)與析構(gòu)函數(shù)語義學(xué)

6.2.1對象的默認(rèn)復(fù)制行為

6.2.2拷貝賦值運算符與拷貝構(gòu)造函數(shù)

6.2.3如何禁止對象的拷貝構(gòu)造和賦值

6.2.4析構(gòu)函數(shù)語義

6.3局部對象、全局對象的構(gòu)造和析構(gòu)

6.3.1局部對象的構(gòu)造和析構(gòu)

6.3.2全局對象的構(gòu)造和析構(gòu)

6.4局部靜態(tài)對象、對象數(shù)組構(gòu)造析構(gòu)和內(nèi)存分配

6.4.1局部靜態(tài)對象的構(gòu)造和析構(gòu)

6.4.2局部靜態(tài)對象數(shù)組的內(nèi)存分配

6.5new、delete運算符與內(nèi)存高級話題

6.6臨時性對象的詳細(xì)探討

6.6.1拷貝構(gòu)造函數(shù)相關(guān)的臨時性對象

6.6.2拷貝賦值運算符相關(guān)的臨時性對象

6.6.3直接運算產(chǎn)生的臨時性對象

第7章模板實例化語義學(xué)

7.1模板及其實例化詳細(xì)分析

7.1.1函數(shù)模板

7.1.2類模板的實例化分析

7.1.3多個源文件中使用類模板

7.2炫技寫法

7.2.1不能被繼承的類

7.2.2類外調(diào)用私有虛成員函數(shù)

后記



本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號