14. Объектно-ориентированный подход. Классы и объекты ключевые слова
private (закрытый). Такой атрибут не виден никаким другим клас-сам, кроме дружественных. protected
Download 67.92 Kb.
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling