Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)

Tags:, ; 664 downloads ; Comments: No Responses

Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)
by Bruce Eckel

Paperback: 814 pages
Publisher: Prentice Hall; 2nd edition (April 15, 2000)
Language: English
ISBN: 0139798099


0139798099500jo9 Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)

Here is a brief description of the chapters contained in this book:

Chapter 1: Introduction to Objects. When projects became too big and complicated to easily maintain, the “software crisis” was born, with programmers saying, “We can’t get projects done, and if we can, they’re too expensive!” This precipitated a number of responses, which are discussed in this chapter along with the ideas of object-oriented programming (OOP) and how it attempts to solve the software crisis. The chapter walks you through the basic concepts and features of OOP and also introduces the analysis and design process. In addition, you’ll learn about the benefits and concerns of adopting the language and suggestions for moving into the world of C++.

Chapter 2: Making and Using Objects. This chapter explains the process of building programs using compilers and libraries. It introduces the first C++ program in the book and shows how programs are constructed and compiled. Then some of the basic libraries of objects available in Standard C++ are introduced. By the time you finish this chapter you’ll have a good grasp of what it means to write a C++ program using off-the-shelf object libraries.

Chapter 3: The C in C++. This chapter is a dense overview of the features in C that are used in C++, as well as a number of basic features that are available only in C++. It also introduces the “make” utility that’s common in the software development world and that is used to build all the examples in this book (the source code for the book, which is available at BruceEckel, contains makefiles for each chapter). Chapter 3 assumes that you have a solid grounding in some procedural programming language like Pascal, C, or even some flavors of Basic (as long as you’ve written plenty of code in that language, especially functions). If you find this chapter a bit too much, you should first go through the Thinking in C seminar on the CD that’s bound with this book (and also available at BruceEckel).

Chapter 4: Data Abstraction. Most features in C++ revolve around the ability to create new data types. Not only does this provide superior code organization, but it lays the groundwork for more powerful OOP abilities. You’ll see how this idea is facilitated by the simple act of putting functions inside structures, the details of how to do it, and what kind of code it creates. You’ll also learn the best way to organize your code into header files and implementation files.

Chapter 5: Hiding the Implementation. You can decide that some of the data and functions in your structure are unavailable to the user of the new type by making them private. This means that you can separate the underlying implementation from the interface that the client programmer sees, and thus allow that implementation to be easily changed without affecting client code. The keyword class is also introduced as a fancier way to describe a new data type, and the meaning of the word “object” is demystified (it’s a fancy variable).

Chapter 6: Initialization and Cleanup. One of the most common C errors results from uninitialized variables. The constructor in C++ allows you to guarantee that variables of your new data type (“objects of your class”) will always be initialized properly. If your objects also require some sort of cleanup, you can guarantee that this cleanup will always happen with the C++ destructor.

Chapter 7: Function Overloading and Default Arguments. C++ is intended to help you build big, complex projects. While doing this, you may bring in multiple libraries that use the same function name, and you may also choose to use the same name with different meanings within a single library. C++ makes this easy with function overloading, which allows you to reuse the same function name as long as the argument lists are different. Default arguments allow you to call the same function in different ways by automatically providing default values for some of your arguments.

Chapter 8: Constants. This chapter covers the const and volatile keywords, which have additional meaning in C++, especially inside classes. You’ll learn what it means to apply const to a pointer definition. The chapter also shows how the meaning of const varies when used inside and outside of classes and how to create compile-time constants inside classes.

Chapter 9: Inline Functions. Preprocessor macros eliminate function call overhead, but the preprocessor also eliminates valuable C++ type checking. The inline function gives you all the benefits of a preprocessor macro plus all of the benefits of a real function call. This chapter thoroughly explores the implementation and use of inline functions.

Chapter 10: Name Control. Creating names is a fundamental activity in programming, and when a project gets large, the number of names can be overwhelming. C++ allows you a great deal of control over names in terms of their creation, visibility, placement of storage, and linkage. This chapter shows how names are controlled in C++ using two techniques. First, the static keyword is used to control visibility and linkage, and its special meaning with classes is explored. A far more useful technique for controlling names at the global scope is C++’s namespace feature, which allows you to break up the global name space into distinct regions.

Chapter 11: References and the Copy-Constructor. C++ pointers work like C pointers with the additional benefit of stronger C++ type checking. C++ also provides an additional way to handle addresses: from Algol and Pascal, C++ lifts the reference, which lets the compiler handle the address manipulation while you use ordinary notation. You’ll also meet the copy-constructor, which controls the way objects are passed into and out of functions by value. Finally, the C++ pointer-to-member is illuminated.

Chapter 12: Operator Overloading. This feature is sometimes called “syntactic sugar;” it lets you sweeten the syntax for using your type by allowing operators as well as function calls. In this chapter you’ll learn that operator overloading is just a different type of function call and you’ll learn how to write your own, dealing with the sometimes-confusing uses of arguments, return types, and the decision of whether to make an operator a member or friend.

Chapter 13: Dynamic Object Creation. How many planes will an air-traffic system need to manage? How many shapes will a CAD system require? In the general programming problem, you can’t know the quantity, lifetime, or type of objects needed by your running program. In this chapter, you’ll learn how C++’s new and delete elegantly solve this problem by safely creating objects on the heap. You’ll also see how new and delete can be overloaded in a variety of ways so you can control how storage is allocated and released.

Chapter 14: Inheritance and Composition. Data abstraction allows you to create new types from scratch, but with composition and inheritance, you can create new types from existing types. With composition, you assemble a new type using other types as pieces, and with inheritance, you create a more specific version of an existing type. In this chapter you’ll learn the syntax, how to redefine functions, and the importance of construction and destruction for inheritance and composition.

Chapter 15: Polymorphism and virtual Functions. On your own, you might take nine months to discover and understand this cornerstone of OOP. Through small, simple examples, you’ll see how to create a family of types with inheritance and manipulate objects in that family through their common base class. The virtual keyword allows you to treat all objects in this family generically, which means that the bulk of your code doesn’t rely on specific type information. This makes your programs extensible, so building programs and code maintenance is easier and cheaper.

Chapter 16: Introduction to Templates. Inheritance and composition allow you to reuse object code, but that doesn’t solve all of your reuse needs. Templates allow you to reuse source code by providing the compiler with a way to substitute type names in the body of a class or function. This supports the use of container class libraries, which are important tools for the rapid, robust development of object-oriented programs (the Standard C++ Library includes a significant library of container classes). This chapter gives you a thorough grounding in this essential subject.

Additional topics (and more advanced subjects) are available in Volume 2 of this book, which can be downloaded from the Web site BruceEckel. Exercises

I’ve discovered that exercises are exceptionally useful during a seminar to complete a student’s understanding, so you’ll find a set at the end of each chapter. The number of exercises has been greatly increased over the number in the first edition.

Many of the exercises are fairly simple so that they can be finished in a reasonable amount of time in a classroom situation or lab section while the instructor observes, making sure all students are absorbing the material. Some exercises are a bit more challenging to keep advanced students entertained. The bulk of the exercises are designed to be solved in a short time and are intended only to test and polish your knowledge rather than present major challenges (presumably, you’ll find those on your own – or more likely, they’ll find you). Exercise solutions.

Download links include the code.

61YQEKZ8FAL. SL75  Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)

Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1) (Paperback)
by Bruce Eckel
ISBN: 0139798099
Publisher: Prentice Hall

Price: USD 37.80
55 used & new available from USD 14.85

stars 4.5 Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition) | 4.5 | 80

2ikxlef Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)

Popularity: 14% [?]

Note: We do not host these ebook files. If you have any complaint of copyright, please comment or contact us. We'll remove the download link immediatly!
We are pleased to offer you this exciting, new, and entirely free professional resource. Visit our Free Industry resource center today to browse our selection of 600+ complimentary Industry magazines, white papers, webinars, podcasts, and more.
Download Links:
Link1
Depositfiles
Tools to Download Faster
TweetBucks, Linkbee

Related eBooks - Up | Down


Introduction to Game Programming with C+...

Introduction to Game Programming with C++ Author: Alan Thorn Publisher: Wordware Publishing; 1 edition Publication Date: 2007-05-15 ISBN-10: 1598220322 ISBN-13: 9781598220322 Paperback: 392 Pages Introduction to Game Programming with C++ explores the world of game development with a focus on C++. This book begins ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Tags:, , ; 6 downloads ; Comments: 4 Responses

Learning C#...

Learning C# Author: Jesse Liberty Publisher: O'Reilly Media Publication Date: 2002-09 ISBN-10: 0596003765 ISBN-13: 9780596003760 Paperback: 368 Pages Jesse Liberty, author of the best-selling books Programming C# and Programming ASP.NET, has written an entry-level guide to C#. Written in a warm and friendly manner, ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Tags:, ; 49 downloads ; Comments: 5 Responses

C in a Nutshell (In a Nutshell (O’...

C in a Nutshell (In a Nutshell (O'Reilly)) by Peter Prinz and Tony Crawford Paperback: 618 pages Publisher: O'Reilly Media, Inc.; illustrated edition edition (December 16, 2005) Language: English ISBN-10: 0596006977 ISBN-13: 978-0596006976 Description of C in a Nutshell (In a Nutshell (O'Reilly)) "As ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Tags:, ; 47 downloads ; Comments: 6 Responses

Programming Microsoft Windows with C#...

Programming Microsoft Windows with C# by Charles Petzold Paperback: 1290 pages Publisher: Microsoft Press (January 18, 2002) Language: English ISBN-10: 0735613702 ISBN-13: 978-0735613706 ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Tags:, , , ; 51 downloads ; Comments: 10 Responses

CLR via C#, Second Edition (Pro Develope...

CLR via C#, Second Edition (Pro Developer) by Jeffrey Richter Paperback: 736 pages Publisher: Microsoft Press; 2 edition (March 22, 2006) Language: English ISBN-10: 0735621632 ISBN-13: 978-0735621633 ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Tags:, , ; 59 downloads ; Comments: 10 Responses

Programming with C++...

Programming with C++ Juneja, B.L. , Formerly Professor Deptt. of Mechanical Engg., IIT, Delhi. Seth, Anita , Teaching Faculty, Institute of Engineering and Technology, DAVV University, Indore, Madhya Pradesh ISBN : 978-81-224-2613-7 Publication Year : Jan, 2009 Edition : 1st Reprint : 2009 Pages : ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Tags:, ; 16 downloads ; Comments: No Responses

Cross-Platform Web Services Using C# �...

Cross-Platform Web Services Using C# & JAVA (Programming Series) by Brian Hochgurtel Paperback: 386 pages Publisher: Charles River Media; 1 edition (March 11, 2003) Language: English ISBN-10: 1584502622 ISBN-13: 978-1584502623 ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Tags:, , , ; 19 downloads ; Comments: No Responses

C# 2008 Codebook (C Sharp)...

C# 2008 Codebook (C Sharp) by Jürgen Bayer Hardcover: 1168 pages Publisher: Addison Wesley Verlag (January 1, 2008) Language: German ISBN-10: 3827325765 ISBN-13: 978-3827325761 ...
Download
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

Tags:, ; 91 downloads ; Comments: One Response