Course Outline:

Chapter 1: Perspective
•	The Software Crisis
•	Design Techniques
•	Large Software Systems
•	Roots of Object Technology
•	What Is Object-Oriented Programming?
•	C++ and Object-Oriented Programming
•	Why C++?
•	Features of C++
•	Pros and Cons of C++
Chapter 2: The Language of Object-Orientation
•	What Is an Object?
•	What Is a Class?
•	Encapsulation
•	Data Hiding
•	The Public Interface
•	Relationships Among Classes
•	Inheritance
•	Polymorphism
•	Object-Oriented Design
Chapter 3: C vs. C++
•	Comments
•	Namespaces
•	Simple Output
•	Simple Input
•	Definitions Near to First Use
•	Function Prototypes
•	The inline Specifier
•	const
•	Structure Members
•	The Reference Type
•	Overloading Function Names
•	Default Parameters
•	The Scope Resolution Operator
•	Aggregates
•	Operators new and delete
•	The bool Data Type
•	The string Data Type
Chapter 4: Fundamentals of Classes
•	Data Types
•	User Defined Data Types
•	Using the Class Concept
•	Defining a Class
•	public and private Access Levels
•	The Scope Resolution Operator ::
•	Using Class Objects Like Built-in Types
•	Scope
•	Constructors
•	Member Initialization Lists
•	Destructors
•	Array of Objects	•	Pointers
•	The this Pointer
•	Passing Objects to Functions
•	Returning Objects From Functions
•	static Class Members
Chapter 5: Operator Overloading
Introduction
•	Rules for Operator Overloading
•	Rationale for Operator Overloading
•	Overloading Member Functions
•	Overloading Non-Member Functions
•	friend Functions
•	The Copy Constructor
•	The Assignment Operator
•	Overloading [ ]
•	Overloading Increment and Decrement Operators
•	const Objects and References
Chapter 6: Composition of Classes
Relationships
•	Composition of Classes
•	The Point Class
•	The Line Class
•	Member Initialization Lists
•	An Application With Composition
•	The Copy Constructor under Composition
•	operator= under Composition
Chapter 7: Inheritance
Introduction
•	Public Base Classes
•	The protected Access Level
•	Member Initialization Lists
•	What Isn’t Inherited
•	Assignments Between Base and Derived Objects
•	Compile-Time vs. Run-Time Binding
•	virtual Functions
•	Polymorphism
•	virtual Destructors
•	Pure virtual Functions
•	Abstract Base Classes
•	An Extended Inheritance Example
Chapter 8: I/O in C++
•	The iostream Library
•	Predefined Streams
•	Overloading operator<<
•	Overloading operator>>
•	Manipulators
•	Stream States
•	Formatted I/O
•	Disk Files
•	Reading and Writing Objects
	Chapter 9: Advanced Topics
•	Template Functions  & Classes
•	Multiple Inheritance
•	User-Defined Conversions
•	Data Structures
•	An Iterator Class
•	Exceptions
Chapter 10: Introduction to the Standard Template Library
•	Introduction
•	The Standard Template Library
•	Design Goals
•	STL Components
•	Iterators
•	Example: vector
•	Example: list,  set,  map, find,  merge
•	Example: accumulate
•	Function Objects
•	Adaptors
•	I/O Library Functions
•	Copying a File
•	Character Input vs. Line Input
•	scanf
•	printf
•	fclose
•	Servicing Errors - errno.h
•	feof
Chapter 16: Information About Files
•	The stat Function
•	File Existence
•	Telling Time - time and ctime
•	Telling Time – localtime
•	Chapter 17: I/O With Structures
•	A Database Application
•	The menu Function
•	The fwrite Function
•	The create_db Function
•	The fread Function
•	The print_db Function
•	fseek
•	The retrieve_db Function
•	fflush and ftell
Chapter 18: Useful Library Functions
•	strstr, strchr, strrchr
•	system, strtok
•	strspn, strcspn
•	Math Functions
•	Character Testing Functions
•	exit and atexit
•	signal
•	memcpy and memset
•	qsort, Binary Search - bsearch