Essential C++(影印版)
[特价中]基本信息
- 原书名: Essential C++
- 原出版社: Pearson Education
编辑推荐
本书是特别为那些想在短时间内赶上C++技术发展的人设计的,书中强调了C++编程过程中一定会遇到的要素,以及可协助解决实际问题的技术。本书的组织围绕这一系列逐渐复杂的程序问题,同时介绍了解决这些问题的语言特性。通过这种方式,你不仅可以学到C++的函数和结构,还可以理解它们的设计目标和基本原理。
内容简介回到顶部↑
本书将C++的本质概括为:procedural(程序性的)、generic(泛型的)、object-based(基于对象的)、object-oriented(面向对象)。本书的组织围绕一系列逐渐复杂的程序问题,同时介绍了解决这些问题的语言特性。通过这种方式,你不仅可以学到C++的函数和结构,还可以理解它们的设计目标和基本原理。
本书涵盖的关键主题包括:
泛型编程风格和STL(标准模板库)
基于对象编程风格和类的设计
面向对象编程风格和类层次结构的设计
函数模板和类模板的设计与运用
异常处理和运行时类型识别
本书涵盖的关键主题包括:
泛型编程风格和STL(标准模板库)
基于对象编程风格和类的设计
面向对象编程风格和类层次结构的设计
函数模板和类模板的设计与运用
异常处理和运行时类型识别
作译者回到顶部↑
本书提供作译者介绍
Stanley B.Lippman目前已应微软邀请,加盟了VisualC++开发小组。此前他曾在贝尔实验室领导过cfront 3.0和2.1的编译器开发小组,并曾是Bjarne Stroustrup所领导的贝尔实验室基础项目中的一员。Stan是《C++ Primer》(3个版次,该书第三版的中文版已由中国电力出版社出版)及《Inside The C++ Object Model》(该书的影印版已由中国电力出版社出版)的作者,这些极为成功的书籍由Addison-Wesley出版。他也是《C++Gems》的编辑,该书由Cambridge University Press出版。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
preface
structure of this book
a note on the source code
acknowledgments
where to find more information
typographical conventions
chapter 1: basic c++ programming
1.1: how to write a c++ program
1.2: defining and initializing a data object
1.3: writing expressions
1.4: writing conditional and loop statements
1.5: how to use arrays and vectors
1.6 pointers allow for flexibility
1.7: writing and reading files
chapter 2: procedural programming
2.1: how to write a function
2.2: invoking a function
2.3: providing default parameter values
2.4: using local static objects
2.5: declaring a function inline
structure of this book
a note on the source code
acknowledgments
where to find more information
typographical conventions
chapter 1: basic c++ programming
1.1: how to write a c++ program
1.2: defining and initializing a data object
1.3: writing expressions
1.4: writing conditional and loop statements
1.5: how to use arrays and vectors
1.6 pointers allow for flexibility
1.7: writing and reading files
chapter 2: procedural programming
2.1: how to write a function
2.2: invoking a function
2.3: providing default parameter values
2.4: using local static objects
2.5: declaring a function inline
前言回到顶部↑
Gosh, but this book is short, t mean, wow. My C++ Primer is 1237 pages counting the index, title, and dedication pages. This one weighs in at 276 -- in boxing terms, we're talking bantamweight.
The first question, of course, is how come? Actually, there's a story to that.
I'd been pestering everyone at Disney Feature Animation for a number of years to let me work on a production. I asked directors, management types -- even Mickey, if the truth be told. In part, it was for the glamour, I suppose. Hollywood. The big screen. Also, I hold a Master of Fine Arts as well as my Comp Sci degree, and film work seemed to promise some sort of personal synthesis. What I told management, of course, was that I needed the experience in production in order to provide usable tools. As a compiler writer, I'd always been one of my own main users. It's difficult to get defensive or feel unfairly criticized when you're one of the principal complainers about your software.
The computer effects lead on the Firebird segment of Fantasia 2000 was interested in having me join the production. To kind of try things out, he asked me to write a tool to read the raw Disney camera information for a scene and generate a camera node that could be plugged into the Houdini animation package. I wrote it in C++, of course. It worked. They liked it. I was invited to come on board.
Once on the production (thanks to Jinko and Chyuan), I was asked to rewrite the tool in Peri. The other TDs, it was explained, weren't heavy-duty programmers but knew Peri, Tcl, and so on. (TD is film industry jargon for technical director. I was the segment's software TD. There was also a lighting TD [hi, Mira] and a model TD [hi, Tim] as well as the actual computer effects animators [hi, Mike, Steve, and Tonya].) And oh, by the way, could I do this quickly, because, gosh, we have a proof of concept test to get out that the directors (hi, Paul arid Gaetan) and effects supervisor (hi, Dave) are waiting for to pitch to the then head of Feature Animation (hi, Peter). No emergency, you understand, but...
This left me in somewhat of a quandary. I can program reasonably quickly in C++ with confidence. Unfortunately, I didn't know Peri. I thought, OK, I'll read a book. But it can't be too big a book, at least not right now. And it had better not tell me too much, although I know I should know everything, only later. After all, this is show biz: The directors need a proof of concept, the artist needs a plug-in to prove the concept, and the producer -- heck, she needs a 48-hour day. I didn't need the best book on Perl --just the right book to get me going and not steer me too far off the righteous path.
I found that book in Learning Perl, by Randal Schwartz. It got me up and running, and it was fun to read. Well, as much as any computer book is tim. It leaves out gobs of good stuff. At the time, though, I didn't need all that stuff -- I needed to get my Perl scripts working.
Eventually, I realized sadly that the third edition of C++ Primer could no longer fill a similar role for someone needing to learn C++. It had just become too big. I think it's a grand book, of course -- particularly with Josee Lajoie coming on board as coauthor of the third edition. But it's too comprehensive for this kind of just-in-time C++ language learning. That's why I decided to write this book.
You're probably thinking, but C++ is not Perl. That's correct. And this text is not Learning Perl. It's about learning C++. The real question is, How does one shed almost a thousand pages and still claim to be teaching anything?
1. Level of detail. In computer graphics, level of detail refers to how sharply an image is rendered. The invading Hun on horseback in the left front corner of the screen needs a face with eyes, hair, five o'clock shadow, clothes, and so on. The Hun way back there -- no, not the rock, silly -- well, we don't render both images with the same care for detail. Similarly, the level of detail in this book is clamped down considerably. C++ Primer, in my opinion, has the most com plete but readable discussion of operator overloading in existence (I can say that because Josee was the author). However, it takes 46 pages of discussion and code examples. Here, I take 2 pages.
2. Core language. When I was editor of the C++ Report, I used to say that half the job of editing the magazine was in deciding what not to put in. The same is true for this text. The text is organized around a series of a programming problems. Language features are introduced to provide a solution to individual problems. I didn't have a problem that multiple or virtual inheritance could solve, so I do not discuss them. To implement an iterator class, however, I had to introduce nested types. Class conversion operators are easy to misuse and are complicated to explain. I therefore chose not to present them. And so on. The choice and order of presentation of language features are always open to criticism. This is my choice and my responsibility.
3. Number of code examples. C++ Primer has hundreds of pages of code that we step through in detail, including an object-oriented Text Query system and about a half-dozen fully implemented classes. Although this text is code-driven, the set of code examples is simply not as rich as that of C++ Primer. To help compensate, solutions to all the program exercises are provided in Appendix A. As my editor, Deborah Lafferty, said, "If you are trying to teach something quickly, it is helpful to have the answers at your fingertips to reinforce the learning."
Structure of This Book The text consists of seven chapters and two appendixes. Chapter ! provides a description of the predefined language in the context of writing a small interactive program.
It covers the built-in data types, the predefined operators, the vector and string library classes, the conditional and looping statements, and the iostream library for input and output. I introduce the vector and string classes in this chapter because I encourage their use over the built-in array and C-style character string.
Chapter 2 explains how to design and use a function and walks through the many flavors of functions supported in C++: inline, overloaded, and template functions as well as pointers to functions.
Chapter 3 covers what is commonly referred to as the Standard Template Library (STL): a collection of container classes, such as a vector, list, set, and map, and generic algorithms to operate on those containers, such as sort(), copy(), and merge(). Appendix B presents an alphabetical listing of the most commonly used generic algorithms and provides an example of how each one is used.
As a C++ programmer, your primary activity is the delivery of classes and object-oriented class hierarchies. Chapter 4 walks through the design and use of the C++ class facility to create data types specific to your application domain. For example, at Dreamworks Animation, where I do some consulting work, we design classes to do four-channel compositing of images and so on. Chapter 5 explains how to extend class design to support families of related classes in object-oriented class hierarchies. Rather than design eight independent image compositing classes, for example, we define a compositing hierarchy using inheritance and dynamic binding.
Class templates are the topic of Chapter 6. A class template is a kind of prescription for creating a class in which one or more types or values are parameterized. A vector class, for example, may parameterize the type of element it contains. A buffer class may parameterize not only the type of element it holds but also the size of its buffer. The chapter is driven by the implementation of a binary tree template class.
Finally, Chapter 7 illustrates how to use the C++ exception handling facility and fit it into the existing standard library exception class hierarchy. Appendix A provides solutions to the programming exercises. Appendix B provides a program example and discussion of the most frequently used generic algorithms.
A Note on the Source Code
The first question, of course, is how come? Actually, there's a story to that.
I'd been pestering everyone at Disney Feature Animation for a number of years to let me work on a production. I asked directors, management types -- even Mickey, if the truth be told. In part, it was for the glamour, I suppose. Hollywood. The big screen. Also, I hold a Master of Fine Arts as well as my Comp Sci degree, and film work seemed to promise some sort of personal synthesis. What I told management, of course, was that I needed the experience in production in order to provide usable tools. As a compiler writer, I'd always been one of my own main users. It's difficult to get defensive or feel unfairly criticized when you're one of the principal complainers about your software.
The computer effects lead on the Firebird segment of Fantasia 2000 was interested in having me join the production. To kind of try things out, he asked me to write a tool to read the raw Disney camera information for a scene and generate a camera node that could be plugged into the Houdini animation package. I wrote it in C++, of course. It worked. They liked it. I was invited to come on board.
Once on the production (thanks to Jinko and Chyuan), I was asked to rewrite the tool in Peri. The other TDs, it was explained, weren't heavy-duty programmers but knew Peri, Tcl, and so on. (TD is film industry jargon for technical director. I was the segment's software TD. There was also a lighting TD [hi, Mira] and a model TD [hi, Tim] as well as the actual computer effects animators [hi, Mike, Steve, and Tonya].) And oh, by the way, could I do this quickly, because, gosh, we have a proof of concept test to get out that the directors (hi, Paul arid Gaetan) and effects supervisor (hi, Dave) are waiting for to pitch to the then head of Feature Animation (hi, Peter). No emergency, you understand, but...
This left me in somewhat of a quandary. I can program reasonably quickly in C++ with confidence. Unfortunately, I didn't know Peri. I thought, OK, I'll read a book. But it can't be too big a book, at least not right now. And it had better not tell me too much, although I know I should know everything, only later. After all, this is show biz: The directors need a proof of concept, the artist needs a plug-in to prove the concept, and the producer -- heck, she needs a 48-hour day. I didn't need the best book on Perl --just the right book to get me going and not steer me too far off the righteous path.
I found that book in Learning Perl, by Randal Schwartz. It got me up and running, and it was fun to read. Well, as much as any computer book is tim. It leaves out gobs of good stuff. At the time, though, I didn't need all that stuff -- I needed to get my Perl scripts working.
Eventually, I realized sadly that the third edition of C++ Primer could no longer fill a similar role for someone needing to learn C++. It had just become too big. I think it's a grand book, of course -- particularly with Josee Lajoie coming on board as coauthor of the third edition. But it's too comprehensive for this kind of just-in-time C++ language learning. That's why I decided to write this book.
You're probably thinking, but C++ is not Perl. That's correct. And this text is not Learning Perl. It's about learning C++. The real question is, How does one shed almost a thousand pages and still claim to be teaching anything?
1. Level of detail. In computer graphics, level of detail refers to how sharply an image is rendered. The invading Hun on horseback in the left front corner of the screen needs a face with eyes, hair, five o'clock shadow, clothes, and so on. The Hun way back there -- no, not the rock, silly -- well, we don't render both images with the same care for detail. Similarly, the level of detail in this book is clamped down considerably. C++ Primer, in my opinion, has the most com plete but readable discussion of operator overloading in existence (I can say that because Josee was the author). However, it takes 46 pages of discussion and code examples. Here, I take 2 pages.
2. Core language. When I was editor of the C++ Report, I used to say that half the job of editing the magazine was in deciding what not to put in. The same is true for this text. The text is organized around a series of a programming problems. Language features are introduced to provide a solution to individual problems. I didn't have a problem that multiple or virtual inheritance could solve, so I do not discuss them. To implement an iterator class, however, I had to introduce nested types. Class conversion operators are easy to misuse and are complicated to explain. I therefore chose not to present them. And so on. The choice and order of presentation of language features are always open to criticism. This is my choice and my responsibility.
3. Number of code examples. C++ Primer has hundreds of pages of code that we step through in detail, including an object-oriented Text Query system and about a half-dozen fully implemented classes. Although this text is code-driven, the set of code examples is simply not as rich as that of C++ Primer. To help compensate, solutions to all the program exercises are provided in Appendix A. As my editor, Deborah Lafferty, said, "If you are trying to teach something quickly, it is helpful to have the answers at your fingertips to reinforce the learning."
Structure of This Book The text consists of seven chapters and two appendixes. Chapter ! provides a description of the predefined language in the context of writing a small interactive program.
It covers the built-in data types, the predefined operators, the vector and string library classes, the conditional and looping statements, and the iostream library for input and output. I introduce the vector and string classes in this chapter because I encourage their use over the built-in array and C-style character string.
Chapter 2 explains how to design and use a function and walks through the many flavors of functions supported in C++: inline, overloaded, and template functions as well as pointers to functions.
Chapter 3 covers what is commonly referred to as the Standard Template Library (STL): a collection of container classes, such as a vector, list, set, and map, and generic algorithms to operate on those containers, such as sort(), copy(), and merge(). Appendix B presents an alphabetical listing of the most commonly used generic algorithms and provides an example of how each one is used.
As a C++ programmer, your primary activity is the delivery of classes and object-oriented class hierarchies. Chapter 4 walks through the design and use of the C++ class facility to create data types specific to your application domain. For example, at Dreamworks Animation, where I do some consulting work, we design classes to do four-channel compositing of images and so on. Chapter 5 explains how to extend class design to support families of related classes in object-oriented class hierarchies. Rather than design eight independent image compositing classes, for example, we define a compositing hierarchy using inheritance and dynamic binding.
Class templates are the topic of Chapter 6. A class template is a kind of prescription for creating a class in which one or more types or values are parameterized. A vector class, for example, may parameterize the type of element it contains. A buffer class may parameterize not only the type of element it holds but also the size of its buffer. The chapter is driven by the implementation of a binary tree template class.
Finally, Chapter 7 illustrates how to use the C++ exception handling facility and fit it into the existing standard library exception class hierarchy. Appendix A provides solutions to the programming exercises. Appendix B provides a program example and discussion of the most frequently used generic algorithms.
A Note on the Source Code
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)
评论交流
共有16人开贴评论 27人参与评论 15人参与打分 查看
评价等级:







发表于:2008-2-11 14:46:00
超低价出售:(全部半价)QQ:10759294
-------------------------------------------
深入浅出面向对象分析和设计(英文影印版) 全新
代码大全(第二版)全新
Visual C .NET技术内幕(第6版) 全新
深入解析Windows操作系统 第4版 全新
算法导论 第二版 全新
C Primer 中文版 第四版
Essential C 中文版 侯捷译
-------------------------------------------
以上书籍均为最新版本,我的qq:10759294,可邮购,支持淘宝。有链接可看照片
另有下列书籍出售:杰克韦尔奇自传、狼图腾、追风筝的人
-------------------------------------------
深入浅出面向对象分析和设计(英文影印版) 全新
代码大全(第二版)全新
Visual C .NET技术内幕(第6版) 全新
深入解析Windows操作系统 第4版 全新
算法导论 第二版 全新
C Primer 中文版 第四版
Essential C 中文版 侯捷译
-------------------------------------------
以上书籍均为最新版本,我的qq:10759294,可邮购,支持淘宝。有链接可看照片
另有下列书籍出售:杰克韦尔奇自传、狼图腾、追风筝的人
| 我要写评论 |
| 查看所有评论交流(共16条) |








点击看大图




加载中...

