Си++: различия между версиями
Содержимое удалено Содержимое добавлено
Oleg4280 (обсуждение | вклад) {{К разделению|2015-05-12}} |
Oleg4280 (обсуждение | вклад) более правильная структура учебника |
||
Строка 2006:
* инкапсуляция.
=== Инкапсуляция ==
- объединение переменных и функций (свойств и методов) в классе.
Строка 2105:
</source></big>
=== static поля и методы ===
Вот тут <tt>var</tt> — не поле класса, а просто такая хитрая глобальная переменная:
Строка 2143:
не более чем указывают на тип и не используются при вызове.
=== Права доступа к именам в классах ===
Внутри объявления класса могут встречаться метки доступа <tt>protected</tt>, <tt>public</tt> и <tt>private</tt>. Они задают уровень доступа ко всем объявлениям, следующим до следующей такой метки или конца класса. Меток доступа может быть сколько угодно.
Строка 2159:
Это есть инкапсуляция, т.е. комплекс мер, дающих гарантию, что авторы внешнего кода не используют приватные детали реализации классов и не попадают от них в зависимость, что облегчает переделку классов — уменьшаются шансы сломать внешний код.
=== Наследование ==
Наследование — это помещение в производный класс (который наследует) свойств и методов базового класса (которого наследуют).
Строка 2222:
а <tt>protected</tt> и <tt>private</tt> части <tt>В</tt> — приватными частями <tt>D</tt>.
=== Полиморфизм ===
Полиморфизм — вызов виртуальной функции производного класса через указатель на базовый.
Строка 2294:
Явная квалификация <tt>pb->D::f()</tt> пересиливает виртуальный механизм вызова, зовется <tt>D::f</tt>.
=== Полиморфизм и множественное наследование ===
<big><source lang=cpp>
Строка 2336:
См. ассемблерный код, сгенеренный при использовании библиотеки Microsoft ATL — там такое на каждом шагу.
=== Конструктор ===
В Си++ имеется возможность гарантированной инициализации — т.е. дается гарантия того, что любой объект классового типа, как бы он не возник в программе, будет проинициализирован неким заданным в классе кодом.
Строка 2482:
Следует отличать <tt>C::C(C&)</tt> и <tt>C::operator=(C&)</tt>. Вторая функция вызывается для уже построенного объекта слева, конструктор же копирования — нет, он и строит этот объект (разница инициализации и присваивания).
=== Деструктор ===
В Си++ есть возможность гарантированного освобождения занятых объектом ресурсов при выходе объекта из области его жизни, т.е. гарантированное разрушение.
|