Какой из структурных шаблонов обеспечивает контроль доступа к объекту путём реализации proxy-объекта?
При каких способах композиции и наследования время жизни инкапсулируемого объекта не зависит от времени жизни инкапсулирующего объекта?
Какие из шаблонов относятся к уровню шаблонов объектно-ориентированного проектирования?
<pre> //====================== start of sample.hpp ========================== class ARef { public: /* Сonstructory */ ARef(A& a, int i) : _a(a), _ix(i) {} /* operator= */ ARef& operator= (T t) { return *this;} private: A& _a; // Reference to A object int _ix; // index in container }; class BRef { public: BRef(B &b, int i) : _b(b), _ix(i) {} BRef& operator= (T t) { return *this;} private: B& _b; int _ix; }; /* * Class CRef имплементирует шаблон проектирования X * хранит в себе ссылку на коллекцию типа A, которая является коллекцией * объектов типа T и предоставляет к ним доступ */ class CRef { public: CRef(C &c, int i) : _c(c), _ix(i) {} CRef& operator= (T t) { return *this;} private: C& _c; /* та коллекция объектов, доступ к которой и предоставляется*/ int _ix; /* индекс текущего объекта в контейнере */ }; /* * Class DRef */ class DRef { public: // конструктор инициализирует объект DRef(D &d, int i) : m_d(d), _ix(i) {} // оператор возвращает ссылку на себя DRef& operator= (T t) { return *this;} private: D& m_d; // хранимый объект int _ix; // индекс }; //====================== end of sample.hpp ========================== </pre> Комментарии какого из классов в файле sample.hpp являются необходимыми и достаточными?
На что распространяется константность константного объекта класса?
В каких ситуациях выполняется создание объекта типа?
Каким классам итераторов доступны операции записи объекта?
В каких случаях происходит по членная инициализация объекта класса?
Какие из приведённых умных указателей выполняет автоматическое удаление объекта?
Какие утверждения про корректное поведение при удалении объекта и освобождении ресурсов верны?