Description
This course introduces the C programmer to the C++
language. It describes how C++ can be used to write better C and then
goes into depth on the object oriented aspects of the language.
This class assumes the student has programmed in
C for at least six months or has taken the C course. The five day class
combines lecture with hands-on exercises.
Objectives
By the end of the course you will be able to:
- Write a C++ program
- Use C++ to write better C programs
- Understand the object-oriented approach to programming
- Define abstract data types
- Create a C++ object with data and function members
- Appreciate the strengths and weaknesses of C++
Instructor
The instructor is Kenneth Pugh, a recognized C and
C++ language expert. Mr. Pugh has many years of experience in programming
a variety of languages and operating systems. He is author of several
books, including C Language for Programmers and All on C. He was a columnist
for the C User's Journal and the C++ Journal. He has been on the faculty
of the University of Hawaii and Wellesley College.
Outline
- Object Oriented Programming
- Data and function abstraction
- Abstract data types
- Comparison to Smalltalk and other languages
- Static versus dynamic type checking
- C++ Features
- Review of C Features related to C++
- Structures
- Pointers versus References
- Function Prototypes
- Enumerations
- Declarations and initializations
- Memory management - malloc and free versus
new and delete
- Classes
- Data members
- Function members
- Object Initialization - Constructors
- Object Cleanup - Destructors
- Default operations - copy constructor and
assignment
- Static members
- Static functions
- Functions
- Call by value and call by reference
- Function overloading
- Default arguments
- Operator functions and overloading
- Friend functions
- Inline functions
- Const functions
- Encapsulation
- Public, Private, Protected Inheritance
- Scope of names
- Resolution operator ::
- Polymorphism
- Pointers to base class
- Virtual functions and vtbl
- Pure versus non-pure functions
- Input and Output Library
- iostreams
- cout << operator
- cin >> operator
- Writing cout, cin friend functions
- Templates
- Class templates <class T>
- Function templates
- Use of templates
- Multiple Inheritance
- Meaning and Syntax
- Virtual base classes
- Design and Development of Classes
- Is_A, Has_A relationships
- Inheritance of interfaces
- Inheritance of implementation
- Error Checking
- Other Aspects of C++
- Exception Handling
- Calling C Functions
- Nested classes
- Other operators -> ->* .* ()
- Mixing C style and C++ style
|