The Advanced C++ Book |
Contents
xiii | |
xiv | |
xv | |
xvi | |
9 | |
7 EXERCISES | 22 |
The C+ + Class and Other C+ + Basics | 23 |
2 CONSTANT OBJECTS | 24 |
3 INITIALIZATION OF BASE CLASSES | 126 |
4 ASSIGNMENT CONSTRUCTORS FOR DERIVED CLASSES | 127 |
5 VIRTUAL FUNCTIONS | 129 |
6 ABSTRACT CLASSES | 132 |
7 VIRTUAL BASE CLASSES | 133 |
8 AMBIGUITY ITS RESOLUTION | 135 |
10 EXAMPLES | 136 |
11 EXERCISES | 140 |
3 CLASSES | 26 |
4 CLASS MEMBERS | 29 |
AN EXAMPLE | 44 |
6 COPYING CLASS OBJECTS | 44 |
7 STREAM INPUTOUTPUT | 48 |
8 CALLING C FUNCTIONS | 48 |
10 EXAMPLES | 48 |
11 EXERCISES | 55 |
Advanced C+ + Facilities | 57 |
1 FRIENDS | 60 |
2 CONSTANT OBJECTS AND CONSTANT MEMBER FUNCTIONS | 67 |
3 REFERENCES | 68 |
4 TYPE CONVERSIONS | 72 |
5 INLINE FUNCTIONS | 78 |
6 OVERLOADING | 82 |
7 FORWARD INCOMPLETE CLASS DECLARATIONS | 93 |
8 NONGLOBAL CLASSES | 94 |
9 STATIC MEMBERS STATIC CLASSES | 95 |
10 POINTERS TO CLASS MEMBERS | 100 |
11 EXERCISES | 102 |
Examples | 103 |
2 SETS | 104 |
3 CROSS REFERENCE GENERATOR | 109 |
4 ITERATORS | 115 |
5 EXERCISES | 118 |
Inheritance | 121 |
1 DERIVED CLASSES | 123 |
2 MULTIPLE INHERITANCE | 125 |
Templates | 143 |
1 TEMPLATE DECLARATIONS DEFINITIONS | 144 |
2 MORE ABOUT TEMPLATES | 147 |
3 EXAMPLES | 148 |
4 EXERCISES | 151 |
The MAKE Program A Large Example | 153 |
1 OVERVIEW OF THE MK IMPLEMENTATION | 157 |
2 EXERCISES | 169 |
Streams and Other Libraries | 171 |
2 STREAM INPUTOUTPUT | 172 |
4 EXERCISES | 214 |
C+ + Program Development Guidelines | 215 |
2 PREVENTING MULTIPLE CLASS DEFINITIONS | 216 |
3 FUNCTION PROTOTYPES | 217 |
4 PASSING ARGUMENTS BY REFERENCE | 218 |
9 INHERITANCE | 219 |
Conclusion | 221 |
1 EXCEPTION HANDLING | 222 |
2 C+ + AND SOFTWARE ENGINEERING | 229 |
3 EXERCISES | 233 |
C Subset of C+ + | 235 |
2 OBJECTS TYPES | 237 |
3 OPERATORS EXPRESSIONS | 239 |
4 STATEMENTS | 241 |
Bibliography | 243 |
Index | 245 |
Other editions - View all
Common terms and phrases
argumentless constructor array assignment operator base class C++ compiler C++ program character class constructors class member class object class specification class stack complex values components const char construction copy constructor cout data members deallocated declaration defined definition delete derived class destructor element end-of-file error example explicitly specified float fprintf(fp function body function call function template glist header file implementation include stdio.h inheritance initialized inline functions input input/output input/output facilities integer invocation invoked istream& operator iteration keyword macro malloc member functions multiple inheritance node notation null pointer object of type object-oriented programming operand output stream overloaded p->next predefined programming language queue reference set &a set::operator set& setvbuf size_t specified stream static member stdlib.h storage allocator strcat strcpy stream input/output string referenced struct suffix rule target type conversions unsigned variable version of C++ virtual functions void void pointer zero
Popular passages
Page 3 - Users of class objects can manipulate them (ie, manipulate the data encapsulated by the objects) using only the items ("data members" and "function members") specified in the "public" part of the class specification. Data abstraction ensures that programmers use and manipulate objects without knowing about or directly accessing their internal representations.
Page xiv - that interact with each other. Programs are written, as far as possible, using concepts that are natural to the application domain. Object-oriented software design enhances program readability and, at the same time, it speeds up the program development process and makes it easier to maintain programs.
Page xiv - Object-Oriented Programming: This approach is similar to the programming paradigm based on abstract data types except that inheritance can be used to define related types. Inheritance supports code reuse by factoring out the common components of related types. C++ is a
Page 2 - Object-Oriented Programming: This approach is similar to the programming paradigm based on abstract data types except that inheritance can be used to define related types. Inheritance supports code reuse by factoring out the common components of related types.
Page ix - In addition to the facilities provided by C, C++ provides a variety of new facilities such as those for • data abstraction, • multiple inheritance, • strong type checking, • passing arguments by reference, • guaranteed initialization, • automatic cleanup, • operator and function overloading,
Page 1 - Modular Programming: The program is designed as a collection of modules. Each module hides its data from the other modules and provides a set of interface functions which must be used to access the data.
Page 3 - This can lead to errors and it makes the resulting code become dependent upon the specifics of the data structure implementation. Using data abstraction facilities, data structures are defined as "classes