Студопедия — R.18.3.1 Определения функций старого стиля
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

R.18.3.1 Определения функций старого стиля






Можно использовать синтаксис С для определений функций: старое-определение-функции: спецификации-описаний opt старый-описатель-функции список-описаний opt тело-функции старый-описатель-функции: описатель (список-параметров opt) список-параметров: идентификатор список-параметров, идентификатор Приведем пример: max(a,b) int b; { return (a<b)? b: a; } Если определенная таким образом функция не была описана ранее, то тип ее формальных параметров полагается (...), т.е. он не будет проверяться. Если она была описана, то тип должен согласовываться с типом, указанным в описании. Приведенный синтаксис нельзя использовать для определения функций-членов. R.18.3.2 Старый стиль задания инициализатора базового класса В конструкции инициализатор-памяти ($$R.12.6.2) можно не указыватьимя-класса, обозначающее базовый класс при условии, что существуеттолько один прямой (непосредственный) базовый класс. Поэтому вописании class B { //... public: B(int); }; class D: public B { //... D(int i): (i) { /*... */ } }; будет вызываться конструктор B с параметром i. R.18.3.3 Присваивание указателю this Присваивая определенные значения указателю this, пользователь мог управлять выделением памяти для объекта некоторого класса. В конструкторе до использования членов класса можно было с помощью такого присваивания реализовать свой алгоритм выделения памяти. Присваивая в деструкторе указателю this нуль, можно было обойти стандартную операцию освобождения объектов класса. Кроме того, присваивание нуля в деструкторе отменяло неявные вызовы деструкторов для членов и базовых классов, например: class Z { int z[10]; Z() { this = my_allocator(sizeof(Z)); } ~Z() { my_deallocator (this); this = 0; } }; Если выделение памяти уже произошло (как бывает для членов иобъектов auto или static), то при входе в конструктор this имеетненулевое значение и значение нуль в противном случае. Вызовы конструкторов для членов и базовых классов произойдуттолько после того, как this получил значение. Если в конструкторебазового класса есть присваивание this, то новое значение thisбудет использоваться и в конструкторах производных классов, еслиони есть. Отметим, что при наличии указанного анахронизма или тип указателяthis не может быть *const, или нужно делать исключение для this изправила о присваивании указателям со спецификацией const.







Дата добавления: 2015-09-04; просмотров: 313. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия