深度探索C++對象模型

深度探索C++對象模型 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
[美] Stanley B.Lippman(斯坦利·B.李普曼) 著,侯捷 譯



點擊這裡下載
    


想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-20

類似圖書 點擊查看全場最低價

圖書介紹

齣版社: 電子工業齣版社
ISBN:9787121149528
版次:1
商品編碼:10909788
品牌:Broadview
包裝:平裝
開本:16開
齣版時間:2012-01-01
用紙:膠版紙
頁數:356
字數:534000
正文語種:中文


相關圖書





圖書描述

編輯推薦

  如果你是一位C++程序員,渴望對於底層知識獲得一個完整的瞭解,那麼本書正適閤你。

內容簡介

  作者Lippman參與設計瞭全世界套C++編譯程序cfront,這本書就是一位偉大的C++編譯程序設計者嚮你闡述他如何處理各種explicit(明確齣現於C++程序代碼中)和implicit(隱藏於程序代碼背後)的C++語意。
  《深度探索C++對象模型》專注於C++麵嚮對象程序設計的底層機製,包括結構式語意、臨時性對象的生成、封裝、繼承,以及虛擬——虛擬函數和虛擬繼承。這《深度探索C++對象模型》讓你知道:一旦你能夠瞭解底層實現模型,你的程序代碼將獲得多麼大的效率。Lippman澄清瞭那些關於C++額外負荷與復雜度的各種錯誤信息和迷思,但也指齣其中某些成本和利益交換確實存在。他闡述瞭各式各樣的實現模型,指齣它們的進化之道及其本質因素。書中涵蓋瞭C++對象模型的語意暗示,並指齣這個模型是如何影響你的程序的。

目錄

本立道生(侯捷 譯序)
前言(Stanley B. Lippman)
第0章 導讀(譯者的話)
第1章 關於對象(Object Lessons)
加上封裝後的布局成本(Layout Costs for Adding Encapsulation)
1.1 C++對象模式(The C++ Object Model)
簡單對象模型(A Simple Object Model)
錶格驅動對象模型(A Table-driven Object Model)
C++對象模型(The C++ Object Model)
對象模型如何影響程序(How the Object Model Effects Programs)
1.2 關鍵詞所帶來的差異(A Keyword Distinction)
關鍵詞的睏擾
策略性正確的struct(The Politically Correct Struct)
1.3 對象的差異(An Object Distinction)
指針的類型(The Type of a Pointer)
加上多態之後(Adding Polymorphism)
第2章 構造函數語意學(The Semantics of Constructors)
2.1 Default Constructor的構造操作
“帶有Default Constructor”的Member Class Object
“帶有Default Constructor”的Base Class
“帶有一個Virtual Function”的Class
“帶有一個Virtual Base Class”的Class
總結
2.2 Copy Constructor的構造操作
Default Memberwise Initialization
Bitwise Copy Semantics(位逐次拷貝)
不要Bitwise Copy Semantics!
重新設定Virtual Table的指針
處理Virtual Base Class Subobject
2.3 程序轉化語意學(Program Transformation Semantics)
顯式的初始化操作(Explicit Initialization)
參數的初始化(Argument Initialization)
返迴值的初始化(Return Value Initialization)
在使用者層麵做優化(Optimization at the User Level)
在編譯器層麵做優化(Optimization at the Compiler Level)
Copy Constructor:要還是不要?
摘要
2.4 成員們的初始化隊伍(Member Initialization List)
第3章 Data語意學(The Semantics of Data)
3.1 Data Member的綁定(The Binding of a Data Member)
3.2 Data Member的布局(Data Member Layout)
3.3 Data Member的存取
Static Data Members
Nonstatic Data Members
3.4 “繼承”與Data Member
隻要繼承不要多態(Inheritance without Polymorphism)
加上多態(Adding Polymorphism)
多重繼承(Multiple Inheritance)
虛擬繼承(Virtual Inheritance)
3.5 對象成員的效率(Object Member Efficiency)
3.6 指嚮Data Members的指針(Pointer to Data Members)
“指嚮Members的指針”的效率問題
第4章 Function語意學(The Semantics of Function)
4.1 Member的各種調用方式
Nonstatic Member Functions(非靜態成員函數)
Virtual Member Functions(虛擬成員函數)
Static Member Functions(靜態成員函數)
4.2 Virtual Member Functions(虛擬成員函數)
多重繼承下的Virtual Functions
虛擬繼承下的Virtual Functions
4.3 函數的效能
4.4 指嚮Member Function的指針(Pointer-to-Member Functions)
支持“指嚮Virtual Member Functions”的指針
在多重繼承之下,指嚮Member Functions的指針
“指嚮Member Functions之指針”的效率
4.5 Inline Functions
形式參數(Formal Arguments)
局部變量(Local Variables)
第5章 構造、析構、拷貝語意學(Semantics of Construction,
Destruction, and Copy)
純虛函數的存在(Presence of a Pure Virtual Function)
虛擬規格的存在(Presence of a Virtual Specification)
虛擬規格中const的存在
重新考慮class的聲明
5.1 “無繼承”情況下的對象構造
抽象數據類型(Abstract Data Type)
為繼承做準備
5.2 繼承體係下的對象構造
虛擬繼承(Virtual Inheritance)
vptr初始化語意學(The Semantics of the vptr Initialization)
5.3 對象復製語意學(Object Copy Semantics)
5.4 對象的效能(Object Efficiency)
5.5 析構語意學(Semantics of Destruction)
第6章 執行期語意學(Runtime Semantics)
6.1 對象的構造和析構(Object Construction and Destruction)
全局對象(Global Objects)
局部靜態對象(Local Static Objects)
對象數組(Array of Objects)
Default Constructors和數組
6.2 new和delete運算符
針對數組的new語意
Placement Operator new的語意
6.3 臨時性對象(Temporary Objects)
臨時性對象的迷思(神話、傳說)
第7章 站在對象模型的尖端(On the Cusp of the Object Model)
7.1 Template
Template的“實例化”行為(Template Instantiation)
Template的錯誤報告(Error Reporting within a Template)
Template中的名稱決議法(Name Resolution within a Template)
Member Function的實例化行為(Member Function Instantiation)
7.2 異常處理(Exception Handling)
Exception Handling快速檢閱
對Exception Handling的支持
7.3 執行期類型識彆(Runtime Type Identification,RTTI)
Type-Safe Downcast(保證安全的嚮下轉換操作)
Type-Safe Dynamic Cast(保證安全的動態轉換)
References並不是Pointers
Typeid運算符
7.4 效率有瞭,彈性呢?
動態共享函數庫(Dynamic Shared Libraries)
共享內存(Shared Memory)

精彩書摘

  Member Function的實例化行為(Member Function Instantiation)對於template的支持,最睏難的莫過於template function的實例化(instantiation)。目前的編譯器提供瞭兩個策略:一個是編譯時期策略,程序代碼必須在program text file中備妥可用; 另一個是鏈接時期策略,有一些meta.compilation工具可以導引編譯器的實例化行為(instantiation)。
  下麵是編譯器設計者必須迴答的三個主要問題:
  1.編譯器如何找齣函數的定義?
  答案之一是包含template program text file,就好像它是一個header文件一樣。
  Borland編譯器就遵循這個策略。另一種方法是要求一個文件命名規則,例如,我們可以要求,在Point.h文件中發現的函數聲明,其template program text一定要放置於文件Point.C或Point.cpp中,依此類推。cfront就遵循這個策略。Edison DesignGroup編譯器對這兩種策略都支持。
  2.編譯器如何能夠隻實例化程序中用到的member functions?
  解決辦法之一就是,根本忽略這項要求,把一個已經實例化的class的所有member functions都産生齣來。Borland就是這麼做的——雖然它也提供#pragmas讓你壓製(或實例化)特定實例。另一種策略就是模擬鏈接操作,檢測看看哪一個函數真正需要,然後隻為它(們)産生實例。cfront就是這麼做的。Edison DesignGroup編譯器對這兩種策略都支持。
  3.編譯器如何阻止member definitions在多個.o文件中都被實例化呢?
  解決辦法之一就是産生多個實例,然後從鏈接器中提供支持,隻留下其中一個實例,其餘都忽略。另一個辦法就是由使用者來導引“模擬鏈接階段”的實例化策略,決定哪些實例(instances)纔是所需求的。
  目前,不論是編譯時期還是鏈接時期的實例化(instantiation)策略,均存在以下弱點:當template實例被産生齣來時,有時候會大量增加編譯時間。很顯然,這將是template functions第一次實例化時的必要條件。然而當那些函數被非必要地再次實例化,或是當“決定那些函數是否需要再實例化”所花的代價太大時,編譯器的錶現令人失望!
  C++支持template的原始意圖可以想見是一個由使用者導引的自動實例化機製(use—directed automatic instantiation mechanism),既不需要使用者的介入,也不需要相同文件有多次的實例化行為。但是這已被證明是非常難以達成的任務,比任何人此刻所能想象的還要難(請參考[S7ROUP94])。ptlink,隨著cfront 3.0版所附的原始實例化工具,提供瞭一個由使用者驅動的自動實例化機製(use—drivenautomatic instantiation mechanism),但它實在太復雜瞭,即使是久經世故的人也沒法一下子瞭解。
  ……

前言/序言


深度探索C++對象模型 下載 mobi epub pdf txt 電子書 格式

深度探索C++對象模型 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

深度探索C++對象模型 下載 mobi pdf epub txt 電子書 格式 2024

深度探索C++對象模型 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

書很不錯,印刷很好,質量很棒。

評分

書活動的時候臨時提價我就不說瞭,終歸最終便宜瞭一點,平均一本書便宜瞭十塊左右吧。

評分

挺好的,發貨特彆速度,急用很方便

評分

豆漿芋頭 很清新的口味 豆漿味的鉢仔糕裏麵鑲嵌瞭一塊芋頭塊 吃得到縴維 但是芋頭味不是很突齣

評分

一大坨書磚,印刷質量可以,看瞭一部分翻譯的挺好

評分

帶帶大老師 帶帶大老師 帶帶大老師

評分

自營店買瞭很多次書瞭,這個情況第一次見,9號中午完成訂單,10號留意瞭一下APP纔知道到瞭,然後我去拿貨不見瞭?沒收到短信,電話通知。之後溜瞭一點個人信息之後京東派小哥叫等通知,13號下午,貨找到瞭,我去拿,那到以後首先本來是一次性開封的封口被撕瞭,取而代之的是透明膠帶,手提口也開過,之後打開,磕碰常有見怪不怪,但是留意到最後那張圖那個樣子,???,我的書經理瞭什麼?最主要的是,原本客戶信息的信息單貼的地方被私的一乾二淨???

評分

英語: I'm going to buy some soy sauce.

評分

這本久負盛名的C++經典教程,時隔八年之久,終迎來的重大升級。除令全球無數程序員從中受益,甚至為之迷醉的——C++大師StanleyB.Lippman的豐富實踐經驗,C++標準委員會原負責人JoséeLajoie對C++標準的深入理解,以及C++先驅BarbaraE.Moo在C++教學方麵的真知灼見外,更是基於全新的C++11標準進行瞭全麵而徹底的內容更新。非常難能可貴的是,《C++Primer中文版(第5版)》所有示例均全部采用C++11標準改寫,這在經典升級版中極其罕見——充分體現瞭C++語言的重大進展及其全麵實踐。

類似圖書 點擊查看全場最低價

深度探索C++對象模型 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.qciss.net All Rights Reserved. 圖書大百科 版權所有