freeCodeCamp/guide/russian/cplusplus/object-oriented-programming/index.md

78 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Object Oriented Programming using C++
localeTitle: Объектно-ориентированное программирование с использованием C ++
---
## Объектно-ориентированное программирование с использованием C ++
Объектно-ориентированное программирование, короткое ООП, предназначено для реализации объектов реального мира, таких как наследование, скрытие и полиморфизм в программировании. Основная цель ООП заключается в объединении данных и функций, которые работают на них, чтобы никакая другая часть кода не могла получить доступ к этим данным, кроме этой функции.
Давайте узнаем о разных характеристиках объектно-ориентированного языка программирования:
### Объект:
Объекты - это базовые объекты времени выполнения в объектно-ориентированной системе, объекты - это экземпляры класса, это определенные пользователем типы данных.
```cpp
class person
{
char name[20];
int id;
public:
void getdetails(){}
};
int main()
{
person p1; //p1 is an object
}
```
Объекты занимают пространство в памяти и имеют ассоциированный адрес, такой как запись в паскале или структура или объединение в C.
Когда программа выполняется, объекты взаимодействуют, отправляя сообщения друг другу.
Каждый объект содержит данные и код для управления данными. Объекты могут взаимодействовать, не зная деталей данных или кода друг друга. Достаточно знать тип принятого сообщения и тип ответа, возвращаемого объектами.
### Учебный класс:
Класс - это план данных и функций или методов. Класс не занимает никакого места.
```cpp
class class_name
{
private:
//data members and member functions declarations
public:
//data members and member functions declarations
protected:
//data members and member functions declarations
};
```
Класс - это определенный пользователем тип данных, такой как структуры и объединения в C.
По умолчанию переменные класса являются частными, но в случае структуры они общедоступны. в приведенном выше примере человек - это класс.
### Инкапсуляция и абстракция данных:
Объединение (объединение) данных и функций в единый блок называется инкапсуляцией. Данные не доступны для внешнего мира, и к ним могут обращаться только те функции, которые обертываются в классе. Эта изоляция данных от прямого доступа к программе называется скрытием данных или скрытием информации.
Абстракция данных означает предоставление только необходимой информации внешнему миру и скрытие деталей реализации. Например, рассмотрим класс Complex с публичными функциями как getReal () и getImag (). Мы можем реализовать класс как массив размером 2 или как две переменные. Преимущество абстракций заключается в том, что мы можем изменить реализацию в любой момент, пользователи класса Complex не будут затронуты, так как наш интерфейс метода остается таким же. Если бы наша реализация была публичной, мы бы не смогли ее изменить.
### Наследование:
Наследование - это процесс, посредством которого объекты одного класса приобретают свойства объектов другого класса. Он поддерживает концепцию иерархической классификации. Наследование обеспечивает повторное использование. Это означает, что мы можем добавить дополнительные функции к существующему классу, не изменяя его.
### Полиморфизм:
Полиморфизм означает способность принимать более одной формы. В разных случаях операция может демонстрировать разные типы поведения. Поведение зависит от типов данных, используемых в операции.
C ++ поддерживает перегрузку и перегрузку функций. Перегрузка оператора - это процесс, при котором оператор может проявлять разные типы поведения в разных случаях. Перегрузка функций использует одно имя функции для выполнения различных задач. Полиморфизм широко используется при реализации наследования.
### Динамическое связывание:
В динамическом связывании код, который будет выполняться в ответ на вызов функции, определяется во время выполнения. У C ++ есть виртуальные функции для поддержки этого.
### Сообщение:
Объекты обмениваются данными друг с другом, отправляя и получая информацию друг другу. Сообщение для объекта - это запрос на выполнение процедуры и, следовательно, вызовет функцию в принимающем объекте, которая генерирует желаемые результаты. Передача сообщения включает указание имени объекта, имени функции и информации для отправки.