Классы в с и с++

Классы в с и с++

Что такое классы в с и с++? Ответ на этот вопрос прост. Для этого нужно понять концепцию объектно-ориентированного программирования (ООП): класс, инкапсуляция и наследование.

Объектно-ориентированное программирование — это способ программирования с ориентацией на объекты. Каждый объект реального мира обладает свойствами и методами. Свойства описывают состояние объекта, а методы обрабатывают внутренние состояния объекта и взаимодействие между ними. Плюсы такого подхода:

  1. Модульность — исходный код объекта независим от исходных кодов других объектов;
  2. Скрытность — механизм модуля скрыт и не отвлекает программиста;
  3. Многократность использования — можно создавать экземпляры;
  4. Сменяемость элементов — элемент вышел из строя и его заменили не разрушив всю задачу.

Инкапсуляция — объединение в единую конструкцию данных и программ, обрабатывающих эти данные. В ООП данные называются членами-данными, а программы, которые обрабатывают — членами-функциями (методами).
Наследование — все характеристики класса родителя присваиваются потомкам, которому можно в последствии добавить новые характеристики.
Полиморфизм — родственные объекты могут вести себя по-разному в зависимости от ситуации. Чтобы этого добиться нужно переопределить один и тот же метод из класса-родителя в классе-потомке.
Класс в с и с++ это такой же тип данных, но имеет сложную структуру. Если говорить о экземплярах, то при создании переменных типа int фактически вы создаете экземпляры переменных этого типа. Общая схема структуры класса выглядит:

[code]
class <имя>
{
private: /* имя секции, в которой методы и данные доступны только методам этого класса. */
<приватные данные>
<приватные конструкторы>
<приватные методы>

protected: /* имя секции, в которой методы и данные доступны методам этого класса и его потомкам */
<защищенные данные>
<защищенные конструкторы>
<защищенные методы>

public: /* имя секции, в которой методы и данные доступны методам всех классов */
<общедоступные данные>
<общедоступные конструкторы>
<общедоступные методы>
}
[/code]

Методы вызываются также, как если бы они находились в структуре:
имя(экземпляра).f(фактические параметры функции);
Создадим простой класс:

[code]
#include<iostream>

using namespace std;

class Person
{
public:
char Name[8];
char SurrName[10];
int Old;
char Pol[7];

void Print()
{
cout<<Name<<endl<<SurrName<<endl<<Old<<endl<<Pol<<endl;
};
};

Person Ivanov={"Ivan","Ivanov",23,"Male"};
Person Petrova={"Angela","Petrova",25,"FeMale"};
int main()
{
Ivanov.Print();
Petrova.Print();
system("pause");
}
[/code]

В примере создан класс, который описывает фамилию и имя, а также возраст и пол человека. Для наглядности инициализированы два экземпляра, один из которых Person Ivanov={«Ivan»,»Ivanov»,23,»Male»}; . Метод вызван строкой Ivanov.Print(); . Более детально постараюсь написать в примерах.

1 Star2 Stars3 Stars4 Stars5 Stars (5 голосов, средний:5,00 из 5)
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.
Оставить комментарий