Си++: различия между версиями

Содержимое удалено Содержимое добавлено
{{К разделению|2015-05-12}}
более правильная структура учебника
Строка 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>. Вторая функция вызывается для уже построенного объекта слева, конструктор же копирования — нет, он и строит этот объект (разница инициализации и присваивания).
 
=== Деструктор ===
 
В Си++ есть возможность гарантированного освобождения занятых объектом ресурсов при выходе объекта из области его жизни, т.е. гарантированное разрушение.