Cтраница 1
![]() |
Использование статического элемента данных для подсчета количества объектов.| Использование статического элемента данных для подсчета количества объектов. [1] |
Функция-элемент тоже может быть объявлена как static, если она не должна иметь доступ к нестатическим элементам класса. В отличие от нестатических функций-элементов статическая функция-элемент не имеет указателя this, потому что статические данные-элементы и статические функции-элементы существуют независимо от каких-либо объектов класса. [2]
Функция-элемент может быть объявлена как static, если она не должна иметь доступ к нестатическим элементам класса. В отличие от нестатических функций-элементов статическая функция-элемент не имеет указателя this, потому что статические данные-элементы и статические функции-элементы существуют независимо от каких-либо объектов класса. [3]
Функция-элемент может быть объявлена как static, если она не должна иметь доступ к элементам класса. [4]
Функция-элемент конструктор с умолчанием класса Array увеличивает на 1 arrayCount, копирует аргумент в элемент данных size, с помощью new выделяет память для хранения внутреннего представления этого массива и указатель, возвращенный операцией new, присваивает элементу данных ptr, применяет assert для проверки нормального завершения new, а затем использует цикл for для задания нулевых начальных значений элементам массива. Можно, конечно, сделать класс Array, который не инициализирует свои элементы, если, например, эти элементы все равно должны будут позднее вводиться извне. Но это рассматривается, как плохой стиль программирования. Массив должен быть всегда должным образом инициализирован согласованными данными. [5]
Функция-элемент конструктор копии класса Array увеличивает на 1 аг - rayCount, копирует элемент size массива, использованного для инициализации, в элемент данных size нового объекта, с помощью new выделяет память для размещения внутреннего представления массива и присваивает указатель, возвращенный операцией new, элементу данных ptr, применяет assert для проверки успешного завершения new, затем использует цикл for, чтобы скопировать все элементы инициирующего массива в новый массив. [6]
Функция-элемент operator сначала осуществляет проверку самоприсваивания. Если самоприсваивания нет, то функция-элемент использует delete, чтобы освободить память, ранее выделенную в массиве-адресате, копирует size исходного массива в size массива-адресата, использует new, чтобы выделить требуемую память массиву-адресату, и помещает указатель, возвращенный new, в элемент ptr массива, используя при этом assert для проверки успешного завершения new. Затем используется цикл for для копирования элементов исходного массива в массив-адресат. Независимо от того, есть самоприсваивание или нет, функция элемент затем возвращает текущий объект ( т.е. this) как константную ссылку; это делает возможным сцепленное присваивание, такое как xyz. Если бы проверки самоприсваивания не было, функция-элемент должна была бы начать с уничтожения пространства массива-адресата. [7]
Функция-элемент operator [ ] проверяет, находится ли индекс в допустимом диапазоне, и если нет, то программа аварийно завершается. [8]
Функция-элемент конструктор преобразования вычисляет длину строки символов и присваивает эту длину закрытому элементу данных length, использует new для присваивания значения указателя на выделенный необходимый объем памяти закрытому элементу данных sPtr, применяет assert для проверки успешного выполнения new и, если все нормально, использует strcpy для копирования строки символов в объект. [9]
Функция-элемент print класса HourlyWorker является примером функции-элемента базового класса, переопределенной в производном классе. Функции-элементы базового класса часто переопределяются в производном классе для выполнения каких-то специфических операций. Переопределенные функции-элементы иногда вызывают версию функции базового класса, чтобы выполнить часть новой задачи. Функция print производного класса выводит также оплату служащих. [10]
![]() |
Операция взять из потока, возвращающая ложь при вводе признака конца. [11] |
Функция-элемент get без аргументов вводит одиночный символ из указанного потока ( даже, если это символ разделитель) и возвращает этот символ в качестве значения вызова функции. Этот вариант функции get возвращает EOF, когда в потоке встречается признак конца файла. [12]
![]() |
Сравнение ввода строки из cin с помощью операции взять из потока и с помощью. [13] |
Функция-элемент getline действует подобно третьему варианту функции-элемента get и помещает нулевой символ после строки в символьном массиве. Но в отличие от get функция getline удаляет символ ограничитель из потока ( т.е. читает этот символ и отбрасывает его); этот символ не сохраняется в символьном массиве. Программа, приведенная на рис. 11.14, демонстрирует использование функции-элемента getline для ввода строки текста. [14]
![]() |
Ввод символов с помощью функции-элемента getline. [15] |