Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2463.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
386.56 Кб
Скачать

Выполнение лабораторной работы

Для выполнения работы необходимо:

  • формализовать задачу;

  • составить описание класса;

  • составить алгоритм для каждого метода, описанного в классе, и определить все методы;

  • создать объекты описанного типа;

  • разработать набор тестов, на которых будет проверяться программа;

  • продемонстрировать работу программы на наборе тестов;

  • оформить работу и отчитаться по ней.

Методические указания к выполнению лабораторной работы

Задание

Реализовать класс натуральное число в Р-ичной системе счисления (2 < Р < 9). Класс должен содержать методы:

  • конструктор без аргументов, конструктор инициализации и конструктор по умолчанию;

  • сложение; вычитание; умножение; деление;

  • функции, реализующие операции отношения (равно, не равно, больше, меньше).

Выполнение

Конструкторы позволяют сделать форму инициализации пользовательских классов аналогичной встроенным типам.

Конструктор – это особый метод, имеющий имя, совпадающее с именем класса. Назначением конструктора является создание и инициализация объекта.

Аргументы конструктора обычно используются для инициализации полей объекта. Количество и типы аргументов конструктора могут быть любыми. Разрешается присваивать аргументам значения по умолчанию.

Конструктор не возвращает результата – недопустимо писать даже void.

Заголовок конструктора, реализуемого вне класса, как и для обычного метода, должен сопровождаться префиксом:

Наименование_класса::Наименование_класса(параметры)

Конструкторы можно перегружать. Различают следующие виды конструкторов:

- конструктор без аргументов (конструктор по умолчанию);

- конструктор инициализации;

- конструктор копирования (с одним параметром определяемого класса).

При отсутствии в классе явно определенных конструкторов автоматически соз­даются конструктор без аргументов (конструктор по умолчанию) и конструктор копирования. Создаваемый автоматически конструктор без аргументов имеет вид:

Наименование_класса::Наименование_класса (){}

Конструктор копирования автоматически создается в таком виде:

Наименование_класса::Наименование_класса(const Наименование_класса &r) { *this = r; }

Аргументом конструктора копирования всегда является объект своего класса.

Эти конструкторы обеспечивают объявление объектов без инициализации и с ини­циализацией другим объектом того же типа:

date d; // конструктор без аргументов

date t(d); // конструктор копирования

date z = d; // конструктор копирования

При наличии хотя бы одного явно определенного конструктора конструктор без аргументов не создается. Конструктор копирования создается всегда, если не оп­ределен явно.

При явном определении конструктора копирования аргумент должен переда­ваться по ссылке – передавать его по значению нельзя. В классе может быть объявлено несколько конструкторов копирования и разрешается определять не­сколько аргументов, если им присваиваются значения по умолчанию. Любой конструктор с параметрами не своего класса является конструктором инициализации. Конструктор инициализации предназначен для инициализации полей класса.

class time {

public:

time(); // конструктор без аргументов

// конструктор инициализации

time(int h, int m = 0, int s = 0) : hours(h), minutes(m), seconds(s)

{}

private:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]