Everything is an object. Objects communicate by sending and receiving messages.

C++ OOP

“One of the things I really like about programming languages is that it’s the perfect excuse to stick your nose into any field. So if you’re interested in high energy physics and the structure of the universe, being a programmer is one of the best ways to get in there. It’s probably easier than becoming a theoretical physicist”

– Bjarne Stroustrup

This course is for

In the preceding courses we introduced many basic terms and concepts of C++ object-oriented programming. In this course we take a deeper look at CLASSES. What are the 4 concepts of OOP: encapsulation, abstraction, inheritance, and polymorphism. We become familiar with dynamic memory, learn constant correctness of the programs while structural programming concentrates on developing functions, the OOP concentrates on developing objects.

lessons

Classes: A Deeper Look, Part 1

Classes: A Deeper Look, Part 2

Operator Overloading; String and Array Objects

Operator Overloading; String and Array Objects - Tips and QA

Inheritance

Inheritance - Tips and QA

Polymorphism

Polymorphism - Tips and QA

DURATION

2 MONTH

PRICE

75000 AMD/MONTH

DISCOUNTS

  • A 10% discount is applied if two or more lump sum payments are made in advance for the services.
  • A student is provided with an additional 50% discount (from the original price) for excellent performance (90%) case for the next phase.
  • A student can receive a 10% referral discount for current or the next course phase (two months) if he was admitted to the study center through one of the students of the study center or a new student was admitted through him.
  • The student has the right to receive a 10% discount as a participant in the war regardless of academic progress.
  • The student has the right to receive a 10% discount as a resident of the region, if his study progress is at least 65% (for the next phase of the course).
  • The student can use 3 (three) discounts at the same time.
  • If the student has informed late about the fact that he is a candidate for a discount, the discounts do not have retroactive effect and are not applied to the previous phases of the course.

PREREQUESITES

  • C++ Basics Course or the knowledge described in the Objectives Section of C++ Basics Course
  • A 16+ aged person to sign the contract

EFFORT

  • 20 hours/week to solve homeworks
  • Plus time to overcome English/Math difficulties
  • Attend the lessons

OBJECTIVES

In this chapter you will learn:
  • How to use a pre-processor wrapper to prevent multiple definition errors caused by including more than one copy of a header file in a source-code file
  • To understand class scope and accessing class members via the name of an object, a reference to an object or a pointer to an object.
  • To define constructors with default arguments.
  • How destructors are used to perform “termination house keeping” on an object before it is destroyed.
  • When constructors and destructors are called and the order in which they are called.
  • The logic errors that may occur when a public member function of a class returns a reference to private data
  • To assign the data members of one object to those of another object by default memberwise assignment
  • To specify
    const
    (constant) objects and
    const
    member functions
  • To create objects composed of other objects
  • To use
    friend
    functions and
    friend
    classes
  • To use the
    this
    pointer
  • To create and destroy objects dynamically with operators
    new
    and
    delete
    , respectively
  • To use
    static
    data members and member functions
  • The concept of a container class
  • The notion of iterator classes that walk through the elements of container classes
  • To use proxy classes to hide implementation details from a class’s clients
  • What operator overloading is and how it makes programs more readable and programming more convenient
  • To redefine (overload) operators to work with objects of user-defined classes
  • The differences between overloading unary and binary operators
  • To convert objects from one class to another class
  • When to, and when not to, overload operators
  • To create PhoneNumber, Array, String and Date classes that demonstrate operator overloading
  • To use overloaded operators and other member functions of standard library class
    string
  • To use keyword
    explicit
    to prevent the compiler from using single-argument constructors to perform implicit conversions
  • To create classes by inheriting from existing classes
  • How inheritance promotes software reuse
  • The notions of base classes and derived classes and the relationships between them
  • The
    protected
    member access specifier
  • The use of constructors and destructors in inheritance hierarchies
  • The differences between
    public
    ,
    protected
    and
    private
    inheritance
  • The use of inheritance to customize existing software
  • What polymorphism is, how it makes programming more convenient, and how it makes systems more extensible and maintainable
  • To declare and use
    virtual
    functions to effect polymorphism
  • The distinction between abstract and concrete classes
  • To declare pure
    virtual
    functions to create abstract classes
  • How to use run-time type information (RTTI) with downcasting,
    dynamic_cast
    ,
    typeid
    and
    type_info
  • How C++ implements
    virtual
    functions and dynamic binding “under the hood”
  • How to use
    virtual
    destructors to ensure that all appropriate destructors run on an object

HOMEWORKS

Lesson 1
D 9.3 D 9.4 D 9.5 D 9.6 D 9.7
D 9.8 D 9.9 D 9.10 D 9.11 D 9.12
D 9.13
D 9.14
D 9.15
Lesson 2
D 10.3 D 10.4 D 10.5 D 10.6 D 10.7
D 10.8 D 10.9 D 10.10
Lessons 3 and 4
D 11.6 D 11.7 D 11.8 D 11.9 D 11.10
D 11.11 D 11.12 D 11.13 D 11.14 D 11.15
D 11.16 D 11.17 D 11.18
Lessons 5 and 6
D 12.3 D 12.4 D 12.5 D 12.6 D 12.7
D 12.8 D 12.9 D 12.10
Lessons 7 and 8
D 13.3 D 13.4 D 13.5 D 13.6 D 13.7
D 13.8 D 13.9 D 13.10 D 13.11 D 13.12
D 13.13 D 13.14 D 13.15 D 13.16
  • These are the home works that are very hard to solve and/or we will practice on them in "Advanced C++" course.

Upcoming C++ OOP Course

The upcoming C++ OOP course will begin on January 28, 2023.

Hurry to join!

4 students are already enrolled.
en_US