Cover image for Core C++ : a software engineering approach
Core C++ : a software engineering approach
Shtern, Victor.
Personal Author:
Publication Information:
Upper Saddle River, NJ : Prentice Hall PTR, [2000]

Physical Description:
xxviii, 1237 pages : illustrations ; 24 cm.
General Note:
Includes index.
Format :


Call Number
Material Type
Home Location
Item Holds
QA76.73.C153 S48 2000 Adult Non-Fiction Central Closed Stacks

On Order



Master C++ the right way: From the software engineering perspective *Master C++ the right way *Object-oriented approach to coding throughout *Harness C++s strengths; avoid its dangers *Build more easily maintainable code Build more powerful, robust, maintainable C++ software For developers with experience in any language, Victor Shterns Core C++ teaches C++ the right way: by applying the best software engineering practices and methodologies to programming in C++. Even if youve already worked with C++, this comprehensive book will show you how to build code that is more robust, far easier to maintain and modify, and far more valuable. Shterns book teaches object-oriented principles before teaching the language, helping you derive all the power of object-oriented development to build superior software. Learn how to make design decisions based on key criteria such as information hiding and pushing responsibilities from clients down to server classes. Then, master every key feature of ANSI/ISO C++ from a software engineers perspective: classes, methods, const modifiers, dynamic memory management, class composition, inheritance, polymorphism, I/O, and much more. If you want to build

Author Notes

Victor Shtern is Professor at Boston University's Metropolitan College, considered one of the top U.S. schools for working professionals. In addition to teaching C++ at the university level, Shtern also teaches training courses to experienced programmers.

Technical Reviewers: Dan Costello, Senior Software Engineer, GE Marquette Medical Systems Steve Glass, Senior Software Engineer, Motorola

Technical Editor: Clovis Tondo, author of The C Answer Book and The C++ Answer Book

Table of Contents

Note: All chapters conclude with a Summary
I INtroduction to Programming With C++
1 Object-Oriented Approach: What's So Good about It?
The Origins of the Software Crisis
Remedy 1 Eliminating Programmers
Remedy 2 Improved Management Techniques
The Waterfall Method
Rapid Prototyping
Remedy 3 Designing a Complex and Verbose Language
The Object-Oriented Approach: Are We Getting Something for Nothing?
What Does the Designer Do?
Design Quality: Cohesion
Design Quality: Coupling
Design Quality: Binding Together Data and Functions
Design Quality: Information Hiding and Encapsulation
Design Issue: Name Conflicts
Design Issue: Object Initialization
What Is an Object, Anyway?
Advantages of Using Objects
Characteristics of the C++ Programming Language
C Objectives: Performance, Readability, Beauty, and Portability
C++ Objectives: Classes with Backward Compatibility with C
2 Getting Started Quickly: A Brief Overview of C++
The Basic Program Structure
Preprocessor Directives
Declarations and Definitions
Statements and Expressions
Functions and Function Calls
Dealing with Program Development Tools
3 Working with C++ Data and Expressions
Values and Their Types
Integral Types
Integer Type Qualifiers
Boolean Values
Floating Point Types
Working with C++ Expressions
High-Priority Operators
Arithmetic Operators
Shift Operators
Bitwise Logical Operators
Relational and Equality Operators
Logical Operators
Assignment Operators
Conditional Operator
Comma Operator
Mixed Expressions: Hidden Dangers
4 C++ CONTROL Flow
Statements and Expressions
Conditional Statements
Standard Forms of Conditional Statements
Common Errors in Conditional Statements
Nested Conditionals and Their Optimization
The Use of the WHILE Loop
Iterations with the DO-WHILE Loop
Iterations with the FOR Loop
C++ Jump Statements
The BREAK Statement
The CONTINUE Statement
The GOTO Statement
The RETURN and EXIT Jumps
The SWITCH Statement
5 Aggregation with Programmer-Defined Data Types
Arrays as Homogeneous Aggregates
Arrays as Vectors of Values
Defining C++ Arrays
Operations over Arrays
Index Validity Checking
Multidimensional Arrays
Defining Character Arrays
Operations on Character Arrays
String Functions and Memory Corruption
Two-Dimensional Character Arrays
Array Overflow in Insertion Algorithms
Defining Array Types
Structures as Heterogeneous Aggregates
Defining Structures as Programmer-Defined Types
Creating and Initializing Structure Variables
Hierarchical Structures and Their Components
Operations on Structure Variables
Defining Structures in Multifile Programs
Unions, Enumerations, and Bit Fields
Bit Fields
6 Memory Management: The Stack and the Heap
Name Scope as a Tool for Cooperation
C++ Lexical Scopes
Name Conflicts Within the Same Scope
Using Same Names in Independent Scopes
Using Same Name in Nested Scopes
Scope of Loop Variables
Memory Management: Storage Classes
Automatic Variables
External Variables
Static Variables
Memory Management: Using Heap
C++ Pointers as Typed Variables
Allocating Memory on the Heap
Arrays and Pointers
Dynamic Arrays
Dynamic Structures
Input and Output with Disk Files
Output to File
Input from File
Input/Output File Objects
II Object-Oriented Programming with C++
7 Programming with C++ Functions
C++ Functions as Modularization Tools
Function Declarations
Function Definitions
Function Calls
Argument Promotions and Conversions
Parameter Passing in C++
Calling by Value
Calling by Pointer
Parameter Passing in C++: Calling by Reference
More on Type Conversions
Returning a Value from a Function
Inline Functions
Parameters With Default Values
Function Nam