Главная страница

Классы. классы. Классы в С это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты


Скачать 109.29 Kb.
НазваниеКлассы в С это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты
АнкорКлассы
Дата22.10.2019
Размер109.29 Kb.
Формат файлаpptx
Имя файлаклассы.pptx
ТипДокументы
#91410
Определение
  • Классы в С++ — это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты — конкретное представление абстракции, имеющее свои свойства и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса. В ООП существует три основных принципа построения классов:
  • Инкапсуляция — это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.
  • Наследование — это свойство, позволяющее создать новый класс-потомок на основе уже существующего, при этом все характеристики класса родителя присваиваются классу-потомку.
  • Полиморфизм — свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Структура объекта класса
// объявление классов в С++
class /*имя класса*/
{
  private:
  /* список свойств и методов для использования внутри класса */
  public:
  /* список методов доступных другим функциям и объектам программы */
  protected:
  /*список средств, доступных при наследовании*/
};
  • Как и при объявлении структуры, имя_класса становится новым именем типа данных, которое можно использовать для объявления переменных (объектов класса) 
  • По умолчанию все функции и переменные, объявленные в классе, являются закрытыми, т. е. принадлежат закрытой секции класса. Это значит, что они доступны для обращения только изнутри членов этого класса и недоступны извне. Для объявления открытых членов класса используется ключевое слово public : , обозначающее начало открытой секции класса. Все члены класса, объявленные после слова public, доступны для обращения как изнутри этого же класса, и для любой другой части программы, в которой доступен класс.
Пример
#include
using namespace std;
// начало объявления класса
class  MessageWrite// имя класса
{
public: // спецификатор доступа
    {
        cout << ”Hello World\n";
    }
Пример
}; // конец объявления класса
{
     MessageWrite objMessage; // объявление объекта
     objMessage.message(); // вызов функции класса message
    system("pause");
    return 0;
}
set — функции и get — функции
#include
using namespace std;
class ViewDate // имя класса
{
    int day, // день
        month, // месяц
        year; // год
    {
        cout << "\n Time \n";
    }
    {
    }
set — функции и get — функции
    {
        cout << "Date: " << day << "." << month << "." << year << endl;
    }
}; // конец объявления класса
{
    setlocale(LC_ALL, "rus"); // установка локали
    int day, month, year;
    cout << "Введите текущий день месяц и год!\n";
    cout << "день: ";     cin >> day;
    cout << "месяц: ";    cin >> month;
    cout << "год: ";  cin >> year;
    ViewDate objDate; // объявление объекта
     objDate.message(); // вызов функции класса message
     objDate.setDate(day, month, year); // инициализация даты
     objDate.getDate(); // отобразить дату
    system("pause");
    return 0;
}
Конструкторы
  •  Конструктор — специальная функция, которая выполняет начальную инициализацию элементов данных, причём имя конструктора обязательно должно совпадать с именем класса.
  • В любом классе должен быть конструктор, даже если явным образом конструктор не объявлен (как в предыдущем классе), то компилятор предоставляет конструктор по умолчанию, без параметров
Пример
#include
using namespace std;
class ViewDate  // имя класса
{
    int day, // день
        month, // месяц
        year; // год
     ViewDate(int date_day, int date_month, int date_year ) // конструктор класса
    {
        setDate(date_day, date_month, date_year); // вызов функции установки даты
    }
    {
        cout <<  "\n Time \n";
    }
    {
Пример
    }
    {
        cout << "date: " << day << "." << month << "." << year << endl;
    }
}; // конец объявления класса CppStudio
{
    ViewDate objDate(18,08,2018); // объявление объекта и инициализация элементов данных
    system("pause");
    return 0;
}
class ViewDate  // имя класса
{
    int day, // день
        month, // месяц
        year; // год
     ViewDate(int date_day, int date_month, int date_year );
    void message(); // функция (метод класса) выводящая сообщение на экран
    void setDate(int date_day, int date_month, int date_year) ;
void getDate();
};
#include " ViewDate.h"
int main(int argc, char*argv[])
{
    ViewDate objDate(18,08,2018); // объявление объекта и инициализвция элементов данных
    system("pause");
    return 0;
}
#include
#include
using namespace std;
// подключаем интерфейс класса к файлу его реализации
#include " ViewDate.h"
ViewDate :: ViewDate(int date_day, int date_month, int date_year ) // конструктор класса
{
}
void ViewDate ::message() // функция (метод класса) выводящая сообщение на экран
{
 cout <<  "\n Time \n";
}
}
void ViewDate ::setDate(int date_day, int date_month, int date_year) // установка даты в формате дд.мм.гг
{
 day   = date_day; // инициализация день
 month = date_month; // инициализация месяц
 year  = date_year; // инициализация год
}
void ViewDate ::getDate() // отобразить текущую дату
{
}
// синтаксис объявления методов класса вне тела класса
/*возвращаемый тип данных*/ /*имя класса*/::/*имя метода*/(/*параметры метода*/)
{
 // операторы
}


написать администратору сайта