Здавалка
Главная | Обратная связь

Методичні вказівки.



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 Все права принадлежат авторам размещенных материалов.