78 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| 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 ++ есть виртуальные функции для поддержки этого.
 | ||
| 
 | ||
| ### Сообщение:
 | ||
| 
 | ||
| Объекты обмениваются данными друг с другом, отправляя и получая информацию друг другу. Сообщение для объекта - это запрос на выполнение процедуры и, следовательно, вызовет функцию в принимающем объекте, которая генерирует желаемые результаты. Передача сообщения включает указание имени объекта, имени функции и информации для отправки. |