Десятичная строка — это строка, которая может содержать только символы десятичных цифр и символы – и +, определяющие знак числа.
Введение
Базовый класс строка содержит следующие обязательные члены класса:
- Указатель на char, который предназначен для хранения адреса динамически выделенной памяти, предназначенной для размещения символов строки.
- Значение типа int, которое хранит длину строки в байтах.
Набор обязательных методов должен уметь исполнять следующие действия:
- Операции конструктора без параметров.
- Операции конструктора, принимающего в качестве параметра Си-строку, которая должна заканчиваться нулевым байтом.
- Операции конструктора, принимающего в качестве параметра символ (char).
- Операции конструктора копирования.
- Операции деструктора.
- Операции очистки строки, то есть, необходимо сделать строку пустой.
Производным от класса Строка является класс Строка-идентификатор. Строки этого класса формируются по законам записи идентификаторов в языке программирования Си, и должны включать в свой состав лишь те символы, которые входят в состав Си-идентификаторов. В случае, когда исходные данные входят в противоречие с правилами записи идентификатора, то тогда создается пустая СТРОКА_ИДЕНТИФИКАТОР.
К числу обязательных следует отнести следующие методы:
- Метод конструктора без параметров.
- Метод конструктора, который принимает в качестве параметра Си-строку, заканчивающуюся нулевым байтом.
- Метод конструктора копирования.
- Метод деструктора.
- Метод перевода всех символов строки (помимо цифр) в верхний регистр.
Строка-идентификатор способна переопределить следующие операции:
- Операцию присваивания (=).
- Операцию оператора (==) проверки на равенство.
- Операцию индексного выражения $[]$.
Десятичная строка
Производным от класса Строка является класс Десятичная строка. Строки этого класса должны содержать лишь символы десятичных цифр и символы – и +, которые задают знак числа. Символы минус (–) или плюс (+) должны располагаться только в первой позиции числа, при этом символ плюс (+) может и не присутствовать, в таком варианте число будет считаться положительным. В случае, когда в составе инициализирующей строки окажутся любые символы, которые отличаются от допустимых, то Десятичная строка должна принять нулевое значение. Содержимое этих строк обязано рассматриваться как десятичное число.
К числу обязательных методов Десятичной строки относятся следующие методы:
- Метод конструктора без параметров.
- Метод конструктора, который принимает в качестве параметра Си-строку, заканчивающуюся нулевым байтом.
- Метод конструктора копирования.
- Метод деструктора, который определяет, можно ли отобразить данное число в формате char.
Десятичная строка способна переопределить следующие операции:
- Операцию присваивания (=).
- Операцию арифметической разности строк (-).
- Операцию проверки на равенство (= =).
Следует отметить, что проектировщик имеет право вводить любое количество дополнительных членов и методов при их обоснованной необходимости.
Иерархия классов может быть представлена следующей схемой:
Рисунок 1. Иерархия классов. Автор24 — интернет-биржа студенческих работ
Класс Строка принято обозначать как String. Он выступает в качестве базового класса для классов десятичная строка и Строк-идентификатор.
Данные являются членами класса, объявленными как protected:
- char *str является указателем на массив символов,
- int len является переменной, хранящей длину строки.
К числу методов классы строка относятся следующие методы:
- Метод string() является конструктором без параметров, способным создать строку нулевой длины.
- Метод String(const char *) является конструктором, который в качестве параметра принимает Си-строку.
- Метод String(const char) является конструктором, который принимает в качестве параметра один символ.
- Метод String(const String &) является конструктором копирования.
- Метод ~String() является деструктором.
- Метод void clear() является функцией очистки строки.
- Метод char *text() является функцией, возвращающей Си-строку.
- Метод void friend report(char *) является дружественной функцией, которая способна выводить сообщения о работе конструкторов и деструкторов на консоль, а так же способна выводить сообщения о работе конструкторов в правое диалоговое окно.
Строка идентификатор именуется как Identifier. Этот класс выступает как производный от класса String. К числу методов класса Identifier относятся следующие методы:
- Метод Identifier(), который является конструктором.
- Метод Identifier(const char *) является конструктором, принимающим в качестве параметра си-строку.
- Метод Identifier(const Identifier &) является конструктором копирования.
- Метод ~Identifier() является деструктором.
- Метод Identifier operator =(const Identifier &) является переопределенной операцией присваивания типа "объект"= "объект".
- Метод Identifier operator =(const char *) является переопределенной операцией присваивания типа "объект" = "си-строка".
- Метод Identifier operator ==(const Identifier &) является переопределенной операцией проверки на равенство.
- Метод сhar operator $[]$(int) является переопределенной операцией индекса.
Десятичная строка носит наименование класса Tenstring. Данный класс выступает как производный от класса String. К методам данного класса относятся следующие:
- Метод Tenstring (), который является конструктором.
- Метод Tenstring (const char *) является конструктором, который принимает в качестве параметра Си-строку.
- Метод Tenstring (const Tenstring &) является конструктором копирования.
- Метод ~ Tenstring () является деструктором.
- Метод Tenstring operator =(const Tenstring &) является переопределенной операцией присваивания типа "объект" = "объект".
- Метод Tenstring operator =(const char *) является переопределенной операцией присваивания типа "объект" = "си-строка".
- Метод Tenstring operator −(Tenstring &) является переопределенной операцией разности (арифметическая разность строк).
- Метод int operator ==(Tenstring &) является проверкой равенства строк.
- Метод void ChangeChar() является проверкой на представление данного числа в char.