Методичні вказівки.
1.Приклад визначення класу. const int LNAME=25; class STUDENT{ char name[LNAME]; // ім'я int age; // вік float grade; // рейтинг public: STUDENT(); // конструктор без параметрів STUDENT(char*,int,float); // конструктор з параметрами STUDENT(const STUDENT&); // конструктор копіювання ~STUDENT(); char * GetName() ; int GetAge() const; float GetGrade() const; void SetName(char*); void SetAge(int); void SetGrade(float); void Set(char*,int,float); void Show(); }; Більш професійне визначення поля name типу покажчик: char* name. Однак у цьому випадку реалізація компонентів-функцій ускладнюється. 2.Приклад реалізації конструктора з видачею повідомлення. STUDENT::STUDENT(char*NAME,int AGE,float GRADE) { strcpy(name,NAME); age=AGE; grade=GRADE; cout<<”\nКонструктор з параметрами викликаний для об'єкта “<<this<<endl; } 3.Варто передбачити в програмі всі можливі способи виклику конструктора копіювання. Нагадуємо, що конструктор копіювання викликається: а) при використанні об'єкта для ініціалізації іншого об'єкта Приклад STUDENT a(“Іванов”,19,50), b=a; б) коли об'єкт передається функції за значенням Приклад void View(STUDENT a){a.Show;} в) при побудові тимчасового об'єкта значення функції, що повертається Приклад STUDENT NoName(STUDENT & student) {STUDENT temp(student); temp.SetName(“NoName”); return temp;} STUDENT c=NoName(a); 4.У програмі необхідно передбачити розміщення об'єктів як в статичній, так і в динамічній пам'яті, а також створення масивів об'єктів. Приклади. а)Масив студентів розміщається в статичній пам'яті STUDENT gruppa[3]; gruppa[0].Set(“Іванов”,19,50); і т.д. або STUDENT gruppa[3]={STUDENT(“Іванов”,19,50), STUDENT(“Петрова”,18,25.5), STUDENT(“Сидоров”,18,45.5)}; б)Масив студентів розміщається в динамічній пам'яті STUDENT *p; p=new STUDENT[3]; p-> Set(“Іванов”,19,50); і т.д. 5.Приклад використання покажчика на компонентну функцію void (STUDENT::*pf)(); pf=&STUDENT::Show; (p[1].*pf)(); 6.Програма використовує три файли * заголовний h-файл із визначенням класу * cpp-файл із реалізацією класу * сpp-файл демонстраційної програми Для запобігання багаторазового включення файлу-заголовка варто використовувати директиви препроцесора #ifndef STUDENTH #define STUDENTH // модуль STUDENT.H ... #endif Зміст звіту. 1.Назва роботи, мета, прізвище, ім'я, по батькові студента, дата виконання. 2.Постановка задачі. Варто дати конкретну постановку, тобто вказати який клас повинен бути реалізований, які повинні бути в ньому конструктори, компоненти-функції і т.д. 3.Визначення класу користувача з коментарями. 4.Реалізація конструкторів і деструктора. 5.Фрагмент програми, що показує використання покажчика на об'єкт і покажчика на функцію з поясненням. 6.Лістінг основної програми, де повинно бути зазначене в якому місці і який конструктор чи деструктор викликаються. Додаток. Варіанти завдань ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|