
- •2. В каком порядке следует перечислять элементы списка инициализации в конструкторе класса? в том же в котором были объявлены переменные в классе
- •1. Конструкторы класса. Конструктор с параметрами. Конструктор со списком инициализации.
- •1.Явное и неявное преобразование типов. Преобразование типов с помощью конструктора и операторов функции.
- •1,Переопределение функции и перегрузка операции.
- •1.Перегрузка унарных и бинарных операций
- •1.Перегрузка операций присваивания
- •1.Перегрузка операции вызова функции
- •1.Перегразка операций индексирования
- •1. Преобразования типов
- •1.Перегрузка операций new и delete
- •1.Описание объектов класса. Указатель This. Конструкторы класса
- •1.Конструктор по умолчанию. Конструкторы копирования-инициализации
- •1.Перегрузка бинарных операций
Билет 1
1,Организация описания классов и объектов в Си++.
В качестве компонентов класса фигурируют поля. Внутренние компоненты класса(private) доступны только компонентам функций того же класса и функциям, объявленным «дружественными» описываемому классу.
Компоненты класса, объявленные как защищенные (protected), называются защищенными. Они доступны функциям не только данного класса, но и его потомкам. Компоненты, объявленные в public называются общими. Они доступны за пределами данного класса в любом месте программы. Если при описании секции класса тип доступа к компонент не указан, то по умолчанию присваивается тип private.
2. В каком порядке следует перечислять элементы списка инициализации в конструкторе класса? В том же в котором были объявлены переменные в классе
3. Какие оператор-функции по умолчанию включаются в спецификацию класса, если они явно не определены.
Присвоение
Билет 2
1,Компонентные данные и методы. Доступ к компонентам класса.
2. В каком порядке следует перечислять элементы списка инициализации в конструкторе класса? в том же в котором были объявлены переменные в классе
3.Какой тип аргумента и кода возврата должен иметь оператор присваивания, создаваемый по умолчанию.
Ссылка на текущий объект –аргумент, возвращаем *this
Билет 3
1,Статические методы и данные класса.
Предназначены для обращения к статическим полям класса. Обращение к статическим методам производится так же, как и к статическим полям, а именно:
а) через имя класса,
б) через имя объекта, если он уже создан.
class A {
static int count; /* поле count - скрытое */
public:
static void int_count() {count++}};
A::int count; /* определение в глобальной области*/
void f(){
A.a;
/* a.count++ - нельзя, так как поле count скрытое.
Изменение поля count выглядит следующим образом: */
a.inc_count();
/*или :*/
A::inc_count();}
2.Каким свойством должен обладать конструктор по умолчанию? Конструктор по умолчанию не имеет параметров ( <имя_класса>( ) )
3 Сколько аргументов должна иметь компонентная оператор-функция, перегружающая унарную операцию.
.Нету аргументов
Билет 4
1,Конструкторы класса. Конструктор по умолчанию. Конструктор копирования-инициализации.
В C++ предназначены специальные методы для инициализации объектов - конструкторы. Они выполняются автоматически при создании объекта. если не указано ни одного конструктора, будет вызван конструктор по умолчанию. Такой конструктор вызывает конструкторы по умолчанию для полей класса и конструкторы по умолчанию базовых классов.
Конструктор копирования- специальный вид конструктора, получающий в качестве единственного параметра указатель на объект того же класса.
T::T(const T&){
/* Тело конструктора */}
2.В порядке обратном тому, в каком эти объекты создавались:
Первым создан - последним будет уничтожен.
3.Сколько аргументов должна иметь компонентная оператор-функция, перегруженная бинарно.
один аргумент
Билет 5
1. Конструкторы класса. Конструктор с параметрами. Конструктор со списком инициализации.
В C++ предназначены специальные методы для инициализации объектов - конструкторы. Они выполняются автоматически при создании объекта. Список выражений определяет значения, использованные для инициализации объекта. Чаще всего конструктор со списком инициализации применяется для задания назначенных значений объекта, в котором используются фиксированные и ссылочные поля, являющиеся объектами других, ранее определенных классов.
2 Чем различаются возможности оператора new и функции malloc. а)new вызывает конструктор, malloc - нет б)new бросает std::bad_alloc если не хватает памяти, malloc возвращает 0 в)new/delete, malloc/free, new[]/delete[] должны использоваться именно в этом порядке и ни каких перемешиваний быть не должно г)ещё new/delete можно перегружать, и это, как минимум, очевидная причина, по которой их нельзя мешать с malloc/free
3.Сколько аргументов должна иметь дружественная оператор-функция, перегруженная унарно
Один
Билет 6
1.Деструкторы класса. Явный и неявный вызов деструктора. Виртуальные деструкторы.
Деструктор- особый вид метода, применяемого для освобождения памяти, занимаемой объектом. Имя деструктора совпадает с именем класса, но перед ним ставится символ «~» (тильда). Деструктор определяет операции, которые необходимо выполнить при уничтожении объекта. Деструктор вызывается автоматически, когда объект выходит из области видимости для локальных объектов - при выходе из блока, в котором они были объявлены; для глобальных – как часть процедуры выхода из main. Для объектов, заданных через указатели, деструктор выполняется неявно при использовании операции delete.
Основное правило: если у вас в классе присутствует хотя бы одна виртуальная функция, деструктор также следует сделать виртуальным. При этом не следует забывать, что деструктор по умолчанию виртуальным не будует, поэтому следует объявить его явно.
2. Можно ли в одном классе объявить несколько конструкторов по умолчанию? Нет нельзя
3.Какие операторы языка С не могу быть перегружены в классах объектов С++
? : * == sizeof
Билет 7
1Дружественные функции и классы.
Дружественные функции используются, когда оформляется действие, не представляющее собой свойство класса, но входящее в интерфейс класса и нуждающееся в доступе к его скрытым полям.
Свойства дружественных функций:
-объявляются внутри класса
- она может быть обычной функцией
- функция, объявленная дружественной, может являться таковой сразу в нескольких классах
Если все методы какого-либо класса должны иметь доступ к скрытым полям другого класса, то он объявляется дружественным классом с помощью ключевого слова friend.
2. Каким свойством должен обладать конструктор по умолчанию? Конструктор по умолчанию не имеет параметров ( <имя_класса>( ) )
3.Как интерпретируется последовательность присвоений
Справа налево
Билет 8
1.Средства динамического распределения в Си++.
динамического распределения памяти: возможности в процессе выполнения программы изменения области памяти для хранения новых узлов и освобождения ресурсов памяти в которых уже нет необходимости. Операции new и delete – основные для работы с динамической памятью.
Node *newptr = new Node[10];
// выделяет в памяти sizeof(Node) байтов и сохраняет указатель на область памяти указателем Ptr. Число 10 – число размещенных объектов данных.
2. Какой конструктор должен вызываться при определении массива объектов классов? Если происходит объявление массива объектов класса без явной инициализации типа Point mass[7] то по умолчанию в случае с инициализацией то соответствующий конструктор с параметром Point mass[] ={ Point(6,7), Point(7,8), }
3.Какие операции языка С++ не могут быть перегружены в классах объектов
:: ? : * == sizeof
Билет 9