C++ Programming


3 Months 2 Hours / Day Morning / Evening

Course Description

C++ is the object oriented superset of ANSI C. This course provides students with a comprehensive study of the C++ Programming Language. The course stresses the object paradigm including classes, inheritance, virtual functions, and templates in the development of C++ programs. Lab exercises reinforce the lectures.Students should have taken the Software Development for Non-Programmers and Introduction to C courses or have equivalent knowledge.

 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 (OOP)

 

  • 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
  • Template 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
  • Example: set
  • Example: map
  • Example: find
  • Example: merge
  • Example: accumulate
  • Function Objects
  • Adaptors

 

BENEFITS OF ATTENDANCE:

 

Upon completion of this course, students will be able to:

  • Explain how object-oriented software engineering enhances the software development process.
  • Identify the major elements in an object-oriented programming language.
  • Implement the concepts of data abstraction and encapsulation in the creation of abstract data types.
  • Implement operator overloading.
  • Use inheritance in C++.
  • Select the proper class protection mechanism.
  • Demonstrate the use of virtual functions to implement polymorphism.
  • Write programs utilizing the I/O classes in C++.
  • Understand some advanced features of C++ including templates, exceptions, and multiple inheritance.
  • Compare the object vs the procedural approach to writing software.
  • Use correct object oriented terminology.
  • Define and use classes in a C++ program.
  • Create and use abstract data types.
  • Derive classes using inheritance in C++.
  • Implement polymorphism by using virtual functions in a program.
Top