[
exit lecture notes
]
1
Getting Started
1.1
Introduction
1.1.1
The Name of the Language
1.1.2
Programming
1.1.3
Course Objectives
1.2
Our Computing Environment
1.2.1
Platform: Unix Solaris
1.2.2
Login Information
1.2.3
Unix Commands
1.2.4
Text Editor: emacs
1.2.5
Working with emacs
1.2.6
A Text-Based Browser: lynx
1.2.7
Making C++ Work
1.2.8
The Making of Basic C++ Programs
1.3
Comments
Assignment 1: Getting Started (Due: Th, April 3)
Computation Oriented Programming
2
Data Types and Expressions
2.1
Numeric Types
2.1.1
Constants
2.1.2
Operators
2.2
Character and String Types
2.2.1
Direct Data
2.2.2
Indirect Data
2.3
Variables and Assignment of Values
2.3.1
Definitions and Assignment Operation
2.3.2
Scope of Definitions
2.4
A Few Libraries
2.4.1
string: String Type
2.4.2
iostream: Standard Input/Output
2.4.3
fstream: File Input/Output Stream
2.4.4
cmath: C Numerics Library
2.5
The Working of Operators
2.6
Type Conversions
2.7
Reference Types
2.8
Pointer Types
2.9
Enumerated Types
2.10
Classification of Primitive Types
3
Flow of Control
3.1
Boolean Arithmetics
3.2
Selectors
3.3
Iterators
3.4
Break and Continue Statements
3.5
Goto Statements
Assignment 2: Flow of Control (Due: Tu, April 15)
4
Abstraction Mechanisms
4.1
Parameter-less Methods
4.1.1
Without Returned Value (Procedure)
4.1.2
With Returned Value (Function)
4.2
Two Views of Methods
4.3
Call-by-Value Parameters
4.4
Call-by-Reference Parameters
4.5
Call-by-Pointer Parameters
4.6
Overloaded Methods
4.7
Declarations
Assignment 3: ASCII Art (Due: Th, April 24)
Object Oriented Programming
5
Designs for Programs
5.1
Object-Oriented Designs
5.1.1
Background
5.1.2
Objects
5.1.3
Classes and Instances
5.2
Application Programming Interfaces (APIs)
5.2.1
A Peek at Programmed Classes
5.2.2
A Peek at Programming without Object-Oriented Support
5.2.3
From Object-Oriented Designs to API’s
5.2.4
Classes as Data Types
6
Coding and Using Classes
6.1
Constructors of Objects
6.1.1
Declaration and Usage of Constructors
6.1.2
Definition of Constrctors
6.1.3
Short Cuts
6.2
Fields and Methods
6.2.1
Instance and Class Members
6.2.2
Scope of Declarations
6.3
Examples
6.3.1
Using Classes
6.3.2
Programming classes
Assignment 4: Classes (Due: Th, May 15)
6.4
Location of Definitions for Class Members
6.5
Destructors
7
Inheritance
7.1
Base and Derived Classes
7.2
Members Overriding
7.3
Multiple Inheritance
7.4
Constructors
7.5
Initialization Lists
7.6
Modes of Inheritance
Assignment 5: Inheritance (Due: Th, May 22)
8
Binding Members to Pointers
8.1
The Variable ‘this’
8.2
Notations
8.3
Static Binding
8.4
Virtual Functions and Dynamic Binding
8.5
Pure Virtual Members
8.6
Polymorphism
9
Templates
9.1
Class Templates
9.2
Offline Definitions
9.3
Template Specialization
9.4
Non-Type Arguments
9.5
Default Arguments
9.6
The C++ Standard Template Library (STL)
Getting Deeper
10
Arrays
10.1
Linear Arrays
10.2
Initialized Linear arrays
10.3
Multi-Dimensional Arrays
10.4
Initialization of Multi-Dimensional Arrays
10.5
Pointers to Arrays
10.6
Parameter Passing
10.7
Strings
Assignment 6: Arrays (Due: Th, May 29)
11
Dynamic Memory Allocation
11.1
Scalar Objects
11.2
Arrays of Objects
11.3
Primitive Data Types
11.4
Linked Objects
12
Loose Ends
12.1
Header Files
12.2
Namespaces
12.3
Default Initializers for Arguments
12.4
Command Line Parameters
12.5
Exception Handling
12.6
Overloading Operators