Everything is an object. Objects communicate by sending and receiving messages.
C++ OOP
![](https://praxit.am/wp-content/uploads/2018/11/quote-1.png)
“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 |
|
PREREQUESITES |
|
EFFORT |
|
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 andconstmember functions
- To create objects composed of other objects
- To use
friendfunctions andfriendclasses
- To use the
thispointer
- To create and destroy objects dynamically with operators
newanddelete, respectively
- To use
staticdata 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
explicitto 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
protectedmember access specifier
- The use of constructors and destructors in inheritance hierarchies
- The differences between
public,protectedandprivateinheritance
- 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
virtualfunctions to effect polymorphism
- The distinction between abstract and concrete classes
- To declare pure
virtualfunctions to create abstract classes
- How to use run-time type information (RTTI) with downcasting,
dynamic_cast,typeidandtype_info
- How C++ implements
virtualfunctions and dynamic binding “under the hood”
- How to use
virtualdestructors 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!