This is a C ++ Piscine designed to gain mastery with this amazing programming language. This C++ Piscine will be very important to understand and develop new skills
related to the world of Object Oriented Programming, inheritance, polymorphism and many other things that I will try to cover in this README. However, do not forget
that these notes are just a little information about everything that you will have to study if you want to do a good project. In the end, this is just an attempt to
provide you with a learning path during the development of your project, but at no point do I present it as the only source of information to be consulted. :)
If you want to learn more about IT topics, I invite you to join my Patreon channel and visit my website: IA Notes
C ++ is a programming language, which comes from the extension of the C programming language, which allows us to manipulate objects, these being a new way of programming that we don't really have in C. Therefore, we can understand it as an extension of C that will allow us to get the best of two worlds, procedural programming and object-oriented programming.
Object-oriented programming (OOP) forms a new programming paradigm that attempts to show how code could be applied in the real world. The most important aspects of this new paradigm are:
- Class: collection of attributes and functions in order to represent a specific type of data. With classes, we define a new data type by defining its "pieces" (attributes) and how these "pieces" (methods) can be used. Therefore, classes can be understood as a specific way of manipulating data thanks to the use of methods.
- Objects: instance of a class, that is, a concrete representation of the class that has been defined. When you declare a class to use it, you are actually instantiating an object of that class, so that you can declare different objects of the same class.
A class is a template. Defines how the objects of a certain data type will be. This class will be characterized by a set of attributes (class properties) and a set of methods (actions that can be performed). Each instance of the class is an object, which will have its own characteristics.
Encapsulation contains all the important information of an object within itself and only displays the selected data to the outside world. The private attributes of an object must be inaccessible from anywhere outside the object, and can only be modified by calling functions on that object.
Abstraction is when the user only interacts with the selected attributes and methods of an object.
-
- Namespaces
- Stdio streams
- Member attributes / Member functions
- This
- Initialization list
- Const
- Visibility
- Accessors
- Non-member attributes / Non-member functions
-
CPP01 - Get in touch with pointers and references
- New & Delete
- References
- Filestream
-
CPP02 - Rule for creating classes
- Polymorphism
- Operator overload
- Canonical form
-
CPP03 - Take a giant step forward
- Inheritance
-
CPP04 - Because abstraction is cool
- Sub-typing polymorphism
- Abstract classes & Interfaces
-
CPP05 - New way of handling errors
- Nested classes
- Exceptions
-
CPP06 - Cast over here, cast over there
- Static cast
- Dynamic cast
- Reinterpret cast
- Const cast
- Cast operators
-
CPP07 - The objective is clearer
- Templates
-
CPP08 - Take advantage of standard tools
- STL