Cтраница 4
![]() |
Объявление класса Time ( часть. из 4. [46] |
Конструктор может вызывать другие функции-элементы класса такие, как функции записи и чтения. Но поскольку конструктор инициализирует объект, данные-элементы могут в этот момент еще не быть в непротиворечивом состоянии. Использование данных-элементов до того, как они получили соответствующие начальные значения, может вызвать ошибки. [47]
Объявляйте как const все функции-элементы, которые предполагается использовать с константными объектами. [48]
![]() |
Пример вывода для программы, приведенной на ( часть 2 из 2. [49] |
Теперь мы обсудим детально функции-элементы класса List. Функция insertAtFront ( см. рис. 15.5) вставляет новый узел в начало списка. [50]
![]() |
Абстрактный базовый класс Employee ( часть 1 из 12. [51] |
В открытой секции класса объявляются следующие функции-элементы: конструктор именем и фамилией работника в качестве аргументов; деструктор, который освобождает динамически выделенную память; get - функция, которая возвращает имя сотрудника; get - функция, возвращающая фамилию; и наконец, две чистых виртуальных функции - earnings и print. Почему эти функции - чистые виртуальные. Ответ прост: потому что не имеет смысла определять эти функции в классе Employee. Объявляя эти функции чистыми виртуальными, мы указываем на то, что будем определять эти функции в производных классах, но не в базовом классе. Мы не можем рассчитать доход для служащего вообще - сначала нужно знать категорию этого служащего. [52]
Когда функция-операция реализуется в качестве функции-элемента, левый ( или единственный) операнд должен быть объектом ( или ссылкой на объект), принадлежащим к классу этой операции. [53]
Функция-элемент getline действует подобно варианту функции-элемента get с тремя аргументами. Функция getline удаляет символ ограничитель из входного потока и не сохраняет его в строке. [54]
![]() |
Применение потоковых манипуляторов hex, oct, dec и setbase ( часть 2 из 2. [55] |
На рис. 21.18 показано использование функции-элемента width при вводе и выводе. Обратите внимание, что при вводе максимально считывается на один символ меньше, чем ширина поля, - оставляется место для нуль-символа, добавляемого в конец введенной строки. [56]
Когда функция-операция объявляется в качестве функции-элемента, левый ( или единственный) операнд должен быть объектом ( или ссылкой на объект), принадлежащим классу этой операции. [57]
При переопределении в производном классе функции-элемента базового класса принято вызывать версию базового класса и после этого выполнять некоторые дополнительные операции. При этом ссылка на функцию-элемент базового класса без использования операции разрешения области действия может вызвать бесконечную рекурсию, потому что функция-элемент производного класса будет в действительности вызывать сама себя. [58]