Introduction to OO programming in C++


C2a - Version:1
Description
This course teaches the Object-Oriented and Multi Paradigm approaches through deep learning and practicing of the C++ Language. Many examples are provided to emphasize the possibilities and advantages of using the new paradigms for characterizing, designing, and programming medium to large projects. The course deals with different aspects including: Inheritance, Polymorphism, Exception Handling and much more. The course presents many complete examples in C++, including various exercises
Intended audience
This course is intended for project managers, project designers, programmers, and engineers wishing to gain foundation knowledge of the C++ programming langauge.
Expand All
  • Object-Oriented Development Introduction.
    • What are the benefits of OOD? How does it meet the challenges of software programming today?
    • The theoretical background of OOD.
    • Basic OOD concepts – Information Hiding; Message vs. Method; etc.
    • What is an object? What is an OO application structure and how does it act?
    • Classes - as a factory of Objects.
  • C++ First Steps.
    • C++ language – Formal details.
    • Main characteristics.
    • C compatible.
    • Strongly typed.
    • Multi paradigm language.
    • Classes Definition:
      • Data members
      • Methods
      • Public Vs. Private
    • Methods definition.
    • Defining and activating objects.
    • Using the C++ I/O library.
  • C++ Goodies
    • General Features added to the language
    • Reference
    • Const
    • Function Overloading
    • Default arguments
    • C++ Casts
    • Namespace
    • bool Type
  • Object based programming
    • Constructors and Destructors; Composed Classes; Copy Constructor
    • Operators Overloading - Relational; Assignment; Arithmetic.
    • Static Members
    • User defined conversions
    • Member vs. Non-member operators - I/O operators; Symmetric operators
    • Friend
    • Efficiency Issues – Possible efficiency problems; Optimization
  • Exception Handling
    • Throwing exceptions
    • Handling exceptions
    • Resource Management in EH environment
    • Exceptions Specification
    • Exception Handling and Efficiency
    • Exception Handling and General Project Design Consideration
    • The Standard Exceptions Hierarchy
  • Object Oriented Programming
    • Inheritance – The Basics
    • The Inheritance relation definition
    • Defining Derived Classes
    • Extending and Overriding Default behavior - Virtual Methods
    • The Protected accessibility level
    • Polymorphism
    • The Polymorphism Idea
    • Base – Derived compatibility
    • Construction and Destruction of derived objects – Virtual Destructors
  • Participants should have working knowledge of the C programming language
  • Participants should have experience with software development
  • Participant will gain a basic understanding of the Object Base, and Object-Oriented technologies
  • Participant will be able to use the above in order to design solutions for real life problems
  • Participants will be familiar with the main mechanisms of the C++ language that support the new paradigms