14. Объектно-ориентированный подход. Классы и объекты ключевые слова


private (закрытый). Такой атрибут не виден никаким другим клас-сам, кроме дружественных. protected


Download 67.92 Kb.
bet2/3
Sana31.03.2023
Hajmi67.92 Kb.
#1313109
1   2   3
Bog'liq
14.Классы и объекты

private (закрытый). Такой атрибут не виден никаким другим клас-сам, кроме дружественных.

  • protected (защищенный). Атрибуты этого раздела доступны только самому классу, его потомкам и друзьям (friend).

    Можно задавать несколько секций private и public, порядок их сле-дования значения не имеет.


    Видимостью элементов класса можно также управлять с помощью ключевых слов struct и class. Если при описании класса используется слово struct, то все поля и методы по умолчанию будут общедоступными (public). Если при описании класса используется слово class, то по умол-чанию все методы и поля класса будут скрытыми (private).
    Свойства атрибутов класса: могут иметь любой тип, кроме типа этого же класса (но могут быть указателями на этот класс); могут быть описаны с модификатором const, при этом они инициализируются только один раз (с помощью конструктора) и не могут изменяться.
    Инициализация атрибутов при описании не допускается.
    Если тело метода определено внутри класса, он является встроен-ным (inline). Как правило, встроенными делают короткие методы. Если внутри класса записано только объявление (заголовок) метода, сам метод должен быть определен в другом месте программы с помощью операции доступа к области видимости (::).
    Задание. Написать класс Student, который имеет следующую структуру:

    // student.h


    class Student
    {

    // элементы–данные private:


    char surname [20]; // фамилия
    char group[10]; // группа
    int birth_year; // год рождения
    int marks[5]; // успеваемость по 5 предметам

    // элементы-функции


    public:
    Student(); // Конструктор без параметров
    // Конструктор с параметрами


    Student(char surname, char *group, int birth_year, int *marks); ~Student(); // Деструктор
    // функции доступа
    void get_surname(char *name); // получить значение из поля surname
    // в name
    const char * get_surname(); // вернуть значение из поля surname
    void get_group(char *gr); // получить значение из поля group в gr
    const char * get_group(); // вернуть значение из поля group
    int get_year(); // вернуть значение из поля year


    void get_marks(int *mr); // получить значение поля marks в mr int get_mark(int n); // вернуть оценку n из в массива оценок


    void set_surname(char *sn); // установить значение sn поле surname void set_group(char *gr); // установить значение gr в поле group void set_year(int b_y); // установить значение b_y в поле birth_year void set_marks int *mrs); // установить значение из mrs в marks



    double aver_мarks(); // вернуть значение средней оценки из массива

    • marks

    void show(); // вывести на печать информацию об отдельном объекте
    };



    Download 67.92 Kb.

    Do'stlaringiz bilan baham:
  • 1   2   3




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling