深度探索C++對(duì)象模型

出版時(shí)間:2012-1  出版社:電子工業(yè)出版社  作者:斯坦利·B.李普曼  頁(yè)數(shù):356  譯者:侯捷  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

  作者Lippman參與設(shè)計(jì)了全世界第一套C++編譯程序cfront,這本書就是一位偉大的C++編譯程序設(shè)計(jì)者向你闡述他如何處理各種explicit(明確出現(xiàn)于C++程序代碼中)和implicit(隱藏于程序代碼背后)的C++語(yǔ)意。
  本書專注于C++面向?qū)ο蟪绦蛟O(shè)計(jì)的底層機(jī)制,包括結(jié)構(gòu)式語(yǔ)意、臨時(shí)性對(duì)象的生成、封裝、繼承,以及虛擬——虛擬函數(shù)和虛擬繼承。這本書讓你知道:一旦你能夠了解底層實(shí)現(xiàn)模型,你的程序代碼將獲得多么大的效率。Lippman澄清了那些關(guān)于C++額外負(fù)荷與復(fù)雜度的各種錯(cuò)誤信息和迷思,但也指出其中某些成本和利益交換確實(shí)存在。他闡述了各式各樣的實(shí)現(xiàn)模型,指出它們的進(jìn)化之道及其本質(zhì)因素。書中涵蓋了C++對(duì)象模型的語(yǔ)意暗示,并指出這個(gè)模型是如何影響你的程序的。
  作者Lippman參與設(shè)計(jì)了全世界第一套C++編譯程序cfront,這本書就是一位偉大的C++編譯程序設(shè)計(jì)者向你闡述他如何處理各種explicit(明確出現(xiàn)于C++程序代碼中)和implicit(隱藏于程序代碼背后)的C++語(yǔ)意。
  本書專注于C++面向?qū)ο蟪绦蛟O(shè)計(jì)的底層機(jī)制,包括結(jié)構(gòu)式語(yǔ)意、臨時(shí)性對(duì)象的生成、封裝、繼承,以及虛擬——虛擬函數(shù)和虛擬繼承。這本書讓你知道:一旦你能夠了解底層實(shí)現(xiàn)模型,你的程序代碼將獲得多么大的效率。Lippman澄清了那些關(guān)于C++額外負(fù)荷與復(fù)雜度的各種錯(cuò)誤信息和迷思,但也指出其中某些成本和利益交換確實(shí)存在。他闡述了各式各樣的實(shí)現(xiàn)模型,指出它們的進(jìn)化之道及其本質(zhì)因素。書中涵蓋了C++對(duì)象模型的語(yǔ)意暗示,并指出這個(gè)模型是如何影響你的程序的。
  對(duì)于C++底層機(jī)制感興趣的讀者,這必然是一本讓你大呼過(guò)癮的絕妙好書。

作者簡(jiǎn)介

作者:(美)Lippman

書籍目錄

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

章節(jié)摘錄

版權(quán)頁(yè):   插圖:   Member Function的實(shí)例化行為(Member Function Instantiation)對(duì)于template的支持,最困難的莫過(guò)于template function的實(shí)例化(instantiation)。目前的編譯器提供了兩個(gè)策略:一個(gè)是編譯時(shí)期策略,程序代碼必須在program text file中備妥可用; 另一個(gè)是鏈接時(shí)期策略,有一些meta.compilation工具可以導(dǎo)引編譯器的實(shí)例化行為(instantiation)。 下面是編譯器設(shè)計(jì)者必須回答的三個(gè)主要問(wèn)題: 1.編譯器如何找出函數(shù)的定義? 答案之一是包含template program text file,就好像它是一個(gè)header文件一樣。 Borland編譯器就遵循這個(gè)策略。另一種方法是要求一個(gè)文件命名規(guī)則,例如,我們可以要求,在Point.h文件中發(fā)現(xiàn)的函數(shù)聲明,其template program text一定要放置于文件Point.C或Point.cpp中,依此類推。cfront就遵循這個(gè)策略。Edison DesignGroup編譯器對(duì)這兩種策略都支持。 2.編譯器如何能夠只實(shí)例化程序中用到的member functions? 解決辦法之一就是,根本忽略這項(xiàng)要求,把一個(gè)已經(jīng)實(shí)例化的class的所有member functions都產(chǎn)生出來(lái)。Borland就是這么做的——雖然它也提供#pragmas讓你壓制(或?qū)嵗┨囟▽?shí)例。另一種策略就是模擬鏈接操作,檢測(cè)看看哪一個(gè)函數(shù)真正需要,然后只為它(們)產(chǎn)生實(shí)例。cfront就是這么做的。Edison DesignGroup編譯器對(duì)這兩種策略都支持。 3.編譯器如何阻止member definitions在多個(gè).o文件中都被實(shí)例化呢? 解決辦法之一就是產(chǎn)生多個(gè)實(shí)例,然后從鏈接器中提供支持,只留下其中一個(gè)實(shí)例,其余都忽略。另一個(gè)辦法就是由使用者來(lái)導(dǎo)引“模擬鏈接階段”的實(shí)例化策略,決定哪些實(shí)例(instances)才是所需求的。 目前,不論是編譯時(shí)期還是鏈接時(shí)期的實(shí)例化(instantiation)策略,均存在以下弱點(diǎn):當(dāng)template實(shí)例被產(chǎn)生出來(lái)時(shí),有時(shí)候會(huì)大量增加編譯時(shí)間。很顯然,這將是template functions第一次實(shí)例化時(shí)的必要條件。然而當(dāng)那些函數(shù)被非必要地再次實(shí)例化,或是當(dāng)“決定那些函數(shù)是否需要再實(shí)例化”所花的代價(jià)太大時(shí),編譯器的表現(xiàn)令人失望! C++支持template的原始意圖可以想見(jiàn)是一個(gè)由使用者導(dǎo)引的自動(dòng)實(shí)例化機(jī)制(use—directed automatic instantiation mechanism),既不需要使用者的介入,也不需要相同文件有多次的實(shí)例化行為。但是這已被證明是非常難以達(dá)成的任務(wù),比任何人此刻所能想象的還要難(請(qǐng)參考[S7ROUP94])。ptlink,隨著cfront 3.0版所附的原始實(shí)例化工具,提供了一個(gè)由使用者驅(qū)動(dòng)的自動(dòng)實(shí)例化機(jī)制(use—drivenautomatic instantiation mechanism),但它實(shí)在太復(fù)雜了,即使是久經(jīng)世故的人也沒(méi)法一下子了解。

編輯推薦

《深度探索C++對(duì)象模型》重點(diǎn)探索了“面向?qū)ο蟪绦蛩С值腃++對(duì)象模型”下的程序行為,對(duì)于“面向?qū)ο笮再|(zhì)的基礎(chǔ)實(shí)現(xiàn)技術(shù)”以及“各種性質(zhì)背后的隱含利益交換”提供了一個(gè)清楚的認(rèn)識(shí),檢驗(yàn)了由程序變形所帶來(lái)的效率沖擊,提供了豐富的程序范例、圖片,以及面向?qū)ο笥^念和底層對(duì)象模型之間的效率測(cè)量。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    深度探索C++對(duì)象模型 PDF格式下載


用戶評(píng)論 (總計(jì)97條)

 
 

  •   這本書很實(shí)用!專注C++底層機(jī)制 優(yōu)化代碼
  •   C++的底層細(xì)節(jié)。書是好書,很有價(jià)值。能理解其中的細(xì)節(jié)做法,在編寫C++的程序過(guò)程中,也會(huì)有所啟發(fā)。而且對(duì)程序的效率也會(huì)有新的認(rèn)識(shí)。
  •   了解C++底層,可以設(shè)計(jì)出性能好點(diǎn)的程序
  •   這本書剛開始看,有關(guān)C++如何運(yùn)行的,講的很深刻,關(guān)于底層如何運(yùn)行的,對(duì)于了解面向?qū)ο笥泻艽髱椭?,?qiáng)烈推薦
  •   C++與Java不同,它是一個(gè)趨于"完全結(jié)構(gòu)化"與"一切對(duì)象"之間的語(yǔ)言,不象Java是一門"一切對(duì)象"的語(yǔ)言。在使用C++中不可避免的要使用并了解對(duì)象其中的底層知識(shí)。而這本書完全滿足了對(duì)C++底層知識(shí)的了解。
  •   很好的一本書,只是不太適合初學(xué)者的,我做了1年半的C++開發(fā),才勉強(qiáng)看懂。書中對(duì)于C++的底層實(shí)現(xiàn)和原理講的很詳細(xì)。
  •   對(duì)深入理解C++對(duì)象模型和內(nèi)存結(jié)構(gòu)很有幫助。
  •   書分析C++底層機(jī)制很透徹,值得一讀
  •   lippman的書是沒(méi)的說(shuō)的 講解的很是到位 不過(guò)適合有基礎(chǔ)的讀者而不是C++新手
  •   侯捷的書都是很好
  •   侯捷老師的書,鞭辟入里,非常好,送貨迅速,值得擁有。
  •   對(duì)c++的理解很有幫助,從編譯器的角度剖析c++的機(jī)制
  •   前6章講解得很好,第七章較為簡(jiǎn)略,需要結(jié)合其他書籍再看。第七章最后一節(jié)更加簡(jiǎn)略了,應(yīng)該能夠再講深入一點(diǎn)。建議在有C++基礎(chǔ)的情況下閱讀本書,收貨會(huì)更大,否則感覺(jué)會(huì)云里霧里。
  •   詳細(xì)描述了C++實(shí)現(xiàn)的各個(gè)細(xì)節(jié),編譯器默默的做了哪些事情以及為什么 對(duì)實(shí)踐很有幫助
  •   剛到手還沒(méi)看,書給人的感覺(jué)很好
    經(jīng)典書籍,定好好吸收
  •   還沒(méi)開始看,但是這確實(shí)是一本很棒的書,不然我也不會(huì)買。
  •   內(nèi)容比較深,不適合像我這樣的初學(xué)者,但虛函數(shù)的章節(jié)還是受益匪淺
  •   書還是不錯(cuò)的么 為了學(xué)知識(shí) 好書
  •   準(zhǔn)備好好閱讀以下,不過(guò)很多人都推薦這本書,侯的書應(yīng)該是很不錯(cuò)的
  •   書可以,質(zhì)量很好,送貨也較快;總之是一本好書
  •   還沒(méi)開始看, 抱怨下快遞, 書籍沒(méi)保護(hù)好, 有破損, 希望當(dāng)當(dāng)在書籍保護(hù)方面可以加強(qiáng)。一個(gè)塑料袋明顯不行。。。
  •   經(jīng)典圖書+經(jīng)典的翻譯,慢慢看,要想成為一個(gè)高手,必須認(rèn)真學(xué)的書之一
  •   十分好的C++進(jìn)階書籍,值得閱讀。挺不錯(cuò)的!
  •   是本好書,但不適合初學(xué)者看。
  •   書非常給力,但是偏深,不適合初學(xué)者
  •   書是正版的,不錯(cuò),內(nèi)容就不多說(shuō)了,百度上有的是,大師的作品。經(jīng)典。
  •   c++必備. 大家都知道.
  •   提高C++功力的好資料!知其所以然的好書!
  •   C++編程提高必讀之書~
  •   C++程序員必須擁有
  •   C++進(jìn)階的好書,毅然買了!
  •   如果你已經(jīng)有基礎(chǔ)了,并且有了一定的實(shí)踐。一定要看看這本書,會(huì)讓你發(fā)現(xiàn)另一片天地。
  •   這本書非常的好 不過(guò) 特別深 基礎(chǔ)特好的話可以看看
  •   非常不錯(cuò)的書,能加深對(duì)c++的理解。
  •   書的質(zhì)量很好,翻了下算法精解,講得挺細(xì)的,還有圖文描述,另一本是別人推薦的,感覺(jué)內(nèi)容比較不容易領(lǐng)悟
  •   這書真的不錯(cuò),下次會(huì)再光顧的
  •   還沒(méi)讀不過(guò)當(dāng)當(dāng)送貨和書真的是沒(méi)的說(shuō)
  •   還是在當(dāng)當(dāng)上買書給力
  •   探究根本的第一步
  •   講的透徹,也很通俗,正在研讀中。
  •   經(jīng)典,沒(méi)啥好說(shuō)的,就是老了點(diǎn),重版后價(jià)格貴了點(diǎn)
  •   做c++必讀
  •   還沒(méi)看,聽(tīng)說(shuō)不錯(cuò)買來(lái)看看
  •   還好~~~~~
  •   有挑戰(zhàn)。。。。。
  •   還沒(méi)有看,準(zhǔn)備學(xué)
  •   質(zhì)量很好啊啊啊質(zhì)量很好啊啊啊質(zhì)量很好啊啊啊
  •   嗯,是在圖書頻道的推薦里看到的,感覺(jué)還好吧。
  •   編程圣典
  •   大師的作品,要好好看
  •   商品好是好,但對(duì)我這個(gè)初學(xué)者來(lái)說(shuō)不怎
  •   經(jīng)典沒(méi)看呢
  •   書本身內(nèi)容不錯(cuò)加上不錯(cuò)的出版社 總體感覺(jué)很好
  •   正版新書,質(zhì)量不錯(cuò),價(jià)格實(shí)惠。
  •   質(zhì)量挺好 發(fā)貨很快
  •   我粗略看了下,感覺(jué)內(nèi)容還不錯(cuò),紙質(zhì)感覺(jué)還可以!總的來(lái)說(shuō)還是感覺(jué)挺好的
  •   內(nèi)容較深,有難度
  •   侯捷 的書一直比較經(jīng)典,不是入門,可以深入理解C++
  •   如果想深度研習(xí)c++,除了這本書,我就不知道其他的了
  •   書絕對(duì)是超值的好書,內(nèi)容非常好,加上是超級(jí)牛人老侯翻譯的,很不錯(cuò),物流也快但我非常不滿意的是排版印刷的字太小,看起來(lái)費(fèi)勁,要拿放大鏡輔助,太郁悶了到底把字印這么小,能省幾個(gè)錢?又不是我們讀者不掏錢,本來(lái)這本書就不便宜,字搞這么小,又不是小說(shuō)看一遍就完了,這種書要反復(fù)看,反復(fù)上機(jī)試驗(yàn)的,長(zhǎng)期看,眼鏡還受得了得了,我反正也有網(wǎng)上下載的掃描版,我打印出打字了,這本書就壓在箱底吧
  •   確實(shí)是一本好書,建議大家都買
  •   經(jīng)典中的經(jīng)典,這個(gè)書是必看的
  •   這是一本關(guān)于C++開發(fā)的國(guó)外工具書,值得一讀.
  •   好書好書,學(xué)習(xí)去了
  •   好書,就是看不太懂
  •   買了兩本書,這本書還沒(méi)開始讀,大家之作了,好好拜讀下吧。
  •   這本書內(nèi)容不錯(cuò),就是比較老了,比較難,需要有一定的基礎(chǔ)才能讀
  •   紙質(zhì)一般吧,書還沒(méi)看
  •   感覺(jué)還行,只得一讀
  •   學(xué)習(xí)c++的利器
  •   還沒(méi)看,感覺(jué)很深。
  •   印刷粗糙 紙張有點(diǎn)次...
  •   剛開始看,看我網(wǎng)上介紹,應(yīng)該是一本好書
  •   這本書還沒(méi)怎么看,但聽(tīng)朋友說(shuō)這本書不是那么容易理解
  •   侯捷先生的文筆確實(shí)與眾不同。以前看過(guò)英文原版,現(xiàn)在看中文似乎理解的更深刻了,我喜歡侯捷先生的書
  •   昨天剛拿到書,封面有3個(gè)像被重物砸的痕跡,其中一個(gè)穿了十幾頁(yè)的小洞。。。
  •   作者沒(méi)的說(shuō),是大牛,譯者也很出名還沒(méi)看完,看了大約半本,還是在很大程度上加深了我對(duì)C++的理解.我覺(jué)得使用過(guò)一段時(shí)間C++的同學(xué)都應(yīng)該看一看,以便做到知其所以然,呵呵.以后也可以和人講精通C++了
  •   紙張質(zhì)量不是很好,中間很多頁(yè)連在一起的。
  •   雖然圖書館有,但還是想買一本,因?yàn)檫@是本難得的好書,當(dāng)然內(nèi)容也比較難。可惜之前價(jià)格太高了,現(xiàn)在降價(jià)這么多,正好出手??上屹I的這本質(zhì)量很差,因?yàn)閳D書館的這書紙是潔白的,而且很有重量;而我買得紙是發(fā)黃的,重量也是輕飄飄的,而且有很重的油墨味。也許是先前版本太貴了,因此新版本(書上寫的是2010年5月第10次印刷)偷工減料,所以才會(huì)這么便宜。但不管怎么說(shuō),印刷的還算不錯(cuò),字跡清楚,用手摸也不會(huì)發(fā)黑。何況是好書,對(duì)得起這價(jià)格。
  •   紙質(zhì)不好,內(nèi)容還是不錯(cuò)的
  •   好書,不過(guò)紙質(zhì)太粗糙了。
  •   印刷質(zhì)量太差,希望卓越下次能把好關(guān)。
  •   唯一唯一的缺陷在于,原書(英文版)的錯(cuò)誤很多...
  •   書還是不錯(cuò)的,就是字有點(diǎn)小,呵呵
  •   還可以一個(gè)星期看完。。。。有些東西講的很費(fèi)解沒(méi)有什么意思,,,,
  •   翻譯的很好,很容易看懂,BAT許多的面試題都源自書中案例。
  •   書很好,就是紙質(zhì)不好
  •   1、包裝還不錯(cuò),比我在別的地方買的都好點(diǎn)。2、但是不 知道為什么打開來(lái)后封面好臟3、快遞真心不行,因?yàn)槭歉读丝畹?,東西扔房東那里也不給本人打電話通知了,搞的以為東西沒(méi)了。
  •   聽(tīng)說(shuō)是深入學(xué)習(xí)必備啊
  •   適合有一定基礎(chǔ)的碼農(nóng)!初級(jí)碼農(nóng)還是先讀C++ Primer比較穩(wěn)妥!
  •   看過(guò)電子版,再看紙質(zhì)的感覺(jué)還是比較好的
  •   沒(méi)事翻來(lái)看看 很好的一本書
  •   可以幫助你深刻的理解C++ 類對(duì)象是如何映射到內(nèi)存中去的。
  •   我相信侯捷的選擇 + 紙是比較輕的那種 很喜歡
  •   深入C 內(nèi)部機(jī)理的書
  •   學(xué)習(xí)C 必看
  •   好書,對(duì)C 的模型介紹很清楚

推薦圖書


 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7