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

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

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

Какие операции можно делать с ссылками?

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

Варианты ответа
возвращать как результат выполнения функции(Верный ответ)
инициализировать(Верный ответ)
снимать косвенность
обнулять
выполнять операции с данным и методами объекта, на который указывает ссылка(Верный ответ)
Похожие вопросы
Какие операции можно выполнять с объектом boost::any?
Какие операции выполняются в конструкторе?
Какие операции выполняет функция malloc?
Какие операции в языке С++ поддерживают RTTI?
Какие операции адресной арифметики имеют смысл?
Какие операции обычно может выполнять деструктор?
Каким классам итераторов доступны операции записи объекта?
<pre> //====================== start of sample.cpp ========================== class ARef { public: ARef(A &amp;a, int i) : _a(a), _ix(i) {} ARef&amp; operator= (T t) { return *this;} operator T() {return _t;} operator A() {return _a;} A& getA() { return _a;} bool operator == (A&amp; a) {return _a == a;} private: A&amp; _a; int _ix; T _t; }; class A { friend class ARef; public: A() {} ARef operator[] (int ix) {return ARef(*this, ix);} operator ARef() {return ARef(*this, ix);} }; //====================== end of sample.cpp ========================== </pre> Какие из методов класса ARef из файла sample.cpp являются необходимыми для поддержки идиомы контекстно-зависимой перегрузки операции индексирования агрегата?
<pre> //====================== start of sample.cpp ========================== class ARef { public: ARef(A &amp;a, int i) : _a(a), _ix(i) {} ARef&amp; operator= (T t) { return *this;} operator T() {return _t;} operator A() {return _a;} A&amp; getA() { return _a;} bool operator == (A&amp; a) {return _a == a;} private: A&amp; _a; int _ix; T _t; }; class A { friend class ARef; public: A() {} ARef operator[] (int ix) {return ARef(*this, ix);} operator ARef() {return ARef(*this, ix);} }; int main() { A a; int i, j; T t; t = a[j]; return 0; } //====================== end of sample.cpp ========================== </pre> Какие из методов классов ARef и A из файла sample.cpp оказываются задействованы при операции t=a[j]?
<pre>//====================== start of sample.cpp ========================== #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;vector&gt; class ServiceOrganization; class BuildingElement { static char* m_city; std::vector&lt;int&gt; m_flats; unsigned int m_square; ServiceOrganization& m_organization; FILE *m_document; BuildingElement* m_pNext; public: BuildingElement(); BuildingElement(BuildingElement&amp;&amp; src) : m_square(0) , m_organization(src.m_organization) , m_document(src.m_document) , m_pNext(src.m_pNext) { m_flats = src.m_flats; src.m_flats.clear(); src.m_organization = ServiceOrganization(); ::fclose(src.m_document); src.m_document = NULL; ::free(src.m_pNext); src.m_pNext = NULL; } };//====================== end of sample.cpp ========================== </pre> Какие операции, выполняемые в конструкторе переноса в файле sample.cpp являются лишними?