База ответов ИНТУИТ

Программирование на С/С++

<<- Назад к вопросам

По каким причинам может потребоваться перегрузка операторов new и delete - глобальных или класса?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
для организации доступа к закрытым членам класса
для классов, создающих мелкие объекты - для экономии памяти(Верный ответ)
для организации быстрого доступа к элементам контейнера STL
при реализации своего «сборщика мусора»(Верный ответ)
при большом количестве операций создания-удаления объектов - для уменьшения фрагментации памяти(Верный ответ)
Похожие вопросы
По какой причине может потребоваться переделка дизайна в многослойной архитектуре?
Какие утверждения про реализацию перегруженных операторах new и delete класса верны?
По каким причинам для списка не подходят алгоритмы сортировки, реализованные как стандартные алгоритмы?
Методы и атрибуты базового класса с каким модификатором доступа доступны классам потомкам?
<pre>//====================== start of sample.cpp ========================== #include &lt;vector&gt; class Person { public: short m_age; const char* m_name; const char* m_surname; const char* m_region_name; }; class Region { public: const char* region_name; const char* cheef_name; long size; }; int main() { std::vector&lt;unsigned char&gt;* mybuffer = new std::vector&lt;unsigned char&gt;(sizeof(Person) + sizeof(Region), 0); Person* my_person = new (&amp;(mybuffer->at(0))) Person(); my_person-&gt;~Person(); delete my_person; Region* p_region = new (&amp;(mybuffer-&gt;at(0))) Region(); p_region-&gt;~Region(); delete p_region; delete mybuffer; return 0; }//====================== end of sample.cpp ========================== </pre> Какие операции освобождений ресурсов в файле sample.cpp являются лишними или ошибочными?
Каким образом может решаться проблема неоптимальных ветвлений кода?
<pre> //====================== start of sample.cpp ========================== struct A {}; struct B {}; struct C {}; struct D {}; struct E {}; struct F {}; class BaseIO { public: virtual int state() throw(A) = 0; virtual void read() throw(A, B) = 0; virtual void write() throw (C, D) = 0; virtual void open() throw (E,F) = 0; virtual void close() throw() = 0; }; class DiskIO: public BaseIO { public: virtual int state() throw(); virtual void read() throw (A, B); virtual void write() throw (C); virtual void open() throw (A, E); virtual void close() throw (F); }; //====================== end of sample.cpp ========================== </pre> Перегрузка каких виртуальных методов базового класса в классе DiskIO выполнена корректно?
Каким образом может быть объявлена функция, принимающая строку двухмерного или многомерного массива в качестве параметра?
Какие ключевые слова языка С++ могут быть использованы, если необходимо изменить атрибут класса в константном методе класса?
Какие из приведённых ниже сигнатур операций new и delete, которые могут быть перегружены указаны правильно?