АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Методические указания. 1. Пример определения класса

Читайте также:
  1. III. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ СТУДЕНТАМ ПО ПОДГОТОВКЕ К СЕМИНАРУ
  2. III. Общие методические указания по выполнению курсовой работы
  3. Базовый учебники, учебные и учебно-методические пособия
  4. Задание и методические указания
  5. Задания к контрольной работе по дисциплине и методические указания к их выполнению
  6. Задания к контрольной работе по дисциплине и методические указания к их выполнению
  7. Инструктивно-методические материалы
  8. Интегрированная оценка финансового состояния предприятия, методические подходы.
  9. Информационно-методические
  10. КОММЕНТАРИИ И МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
  11. КОММЕНТАРИИ И МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
  12. КОММЕНТАРИИ И МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

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

 

Содержание отчета.

2. Постановка задачи. Следует дать конкретную постановку, т.е. указать, какой класс должен быть реализован, какие должны быть в нем конструкторы, компоненты-функции и т.д.

3. Определение пользовательского класса с комментариями.

4. Реализация конструкторов и деструктора.

5. Фрагмент программы, показывающий использование указателя на объект и указателя на функцию с объяснением.

6. Листинг основной программы, в котором должно быть указано, в каком месте и какой конструктор или деструктор вызываются.

 

Приложение. Варианты заданий.


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)