Шрифт:
исчезает при использовании функции
Если вы программируете систему, в которой допускаются объекты класса
Если вы не можете ограничиться использованием класса
25.4.3. Решение: интерфейсный класс
К сожалению, во многих встроенных системах мы не можем использовать класс
• Он знает свой размер (а значит, способен проверять выход за пределы допустимого диапазона).
• Он знает точный тип своих элементов (а значит, не может порождать ошибки, связанные с типами).
• Его несложно передать (скопировать) как пару (указатель, счетчик).
• Его нельзя неявно преобразовать в указатель.
• Он позволяет легко выделить поддиапазон в целом диапазоне.
• Его легко использовать как встроенный массив.
Свойство “легко использовать как встроенный массив” можно обеспечить лишь приблизительно. Если бы мы сделали это совершенно точно, то вынуждены были бы смириться с ошибками, которых стремимся избежать.
Рассмотрим пример такого класса.
Класс
• В нем нет функций
• Класс Array_ref имеет форму ссылки, поэтому операция копирования просто копирует пары (
• Инициализируя разные массивы, можем получить объекты класса
• Обновляя пару (
• В классе
Класс