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

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

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

<pre> //====================== start of sample.cpp ========================== template &lt;class Element, unsigned long max_size&gt; class Storage { public: Storage(Element) {} }; template &lt;class Element&gt; class Storage &lt;Element, 0 /* unlimited*/&gt; { public: Storage(Element e) {} }; template &lt;unsigned long max_size&gt; class Storage &lt;int, max_size&gt; { public: Storage(int e) {} }; template &lt;&gt; class Storage&lt;char*, 0&gt; { public: Storage(char* s) {} }; template &lt;&gt; class Storage&lt;char*, 100&gt; { public: Storage(char* s) {} }; int main() { int p1=4; Storage&lt;int, 5&gt; st1(p1); Storage&lt;char*, 100&gt; st2(char* s); Storage&lt;double, 80000&gt; st3(double n); Storage&lt;double, 0&gt; st4(double n); return 0; } //====================== end of sample.cpp ========================== </pre> Какой из шаблонов Storage в файле sample.cpp не задействован в функции main в файле sample.cpp?

(Отметьте один правильный вариант ответа.)

Варианты ответа
template <> class Storage<char*, 100>
template <class Element> class Storage <Element, 0>
template <unsigned long max_size> class Storage <int, max_size>
template <class Element, unsigned long max_size> class Storage
template <> class Storage<char*, 0>(Верный ответ)
Похожие вопросы
<pre> //====================== start of sample3.h ========================== #include &lt;list&gt; #include &lt;vector&gt; template&lt;class Storage&gt; class MyIter {}; template&lt;class Storage&gt; void my_input_process(Storage* in_item) {} template&lt;class Storage, int size&gt; void clear_all(Storage*); template &lt;class Storage, class Element, int size&gt; class BackupInput {}; template &lt;class Storage, class Element, int size&gt; class Input { public: Input() : m_store(size) {} friend class MyIter&lt;Storage&gt;; friend void my_input_process&lt;Storage&gt;(Storage*); friend void clear_all&lt;Storage, 100&gt;(Storage*); friend class BackupInput&lt;Storage, Element, size&gt;; private: Storage m_store; }; Input&lt;std::list&lt;short&gt;, short, 25&gt; input25; int main() { MyIter&lt;std::list&lt;short&gt;&gt; my_iter; BackupInput&lt;std::list&lt;short&gt;, short, 25&gt; backup_input; my_input_process&lt;std::vector&lt;short&gt;&gt;(nullptr); clear_all&lt;std::vector&lt;short&gt;, 25&gt;(nullptr); clear_all&lt;std::list&lt;short&gt;, 100&gt;(nullptr); return 0; } //====================== end of sample3.h ========================== </pre> Какие функции и классы в файле sample.cpp имеют доступ к всем атрибутам глобального объекта input25?
<pre> //====================== start of sample.cpp ========================== #include &lt;vector&gt; template &lt;class Storage, int size&gt; class Input { public: Input() : m_store(size) {} private: Storage m_store; }; int main() { Input&lt;int,5&gt; a1; Input&lt;int,6&gt; a2; Input&lt;std::vector&lt;int&gt;,10&gt; v3; Input&lt;std::vector&lt;short&gt;,10&gt; v4; Input&lt;double, 30&gt; *pMyInput = nullptr; return 0; } //====================== end of sample.cpp ========================== </pre> Сколько описаний пользовательских типов будет в скомпилированном коде из файла sample.cpp?
<pre> //====================== start of sample.cpp ========================== template&lt;unsigned long N&gt; class binary { public: static unsigned long const value = binary&lt;N / 10&gt;::value &lt;&lt; 1 | N % 10; }; template&lt;&gt; class binary&lt;0&gt; { public: static unsigned long const value = 0; }; template&lt;&gt; class binary&lt;1&gt; { public: static unsigned long const value = 1; }; int main(int argc, char* argv[]) { static unsigned const x0 = binary&lt;0&gt;::value; static unsigned const x1 = binary&lt;1000&gt;::value; static unsigned const x2 = binary&lt;1001&gt;::value; static unsigned const x3 = binary&lt;1010&gt;::value; static unsigned const x4 = binary&lt;1011&gt;::value; return 0; } //====================== end of sample.cpp ========================== </pre> При инициализации какой переменной не будет использоваться конкретизация шаблона с параметром 0?
<pre> //====================== start of sample.cpp ========================== template&lt;unsigned long N&gt; class binary { public: static unsigned long const value = binary&lt;N / 10&gt;::value &lt;&lt; 1 | N % 10; }; template&lt;&gt; class binary&lt;0&gt; { public: static unsigned long const value = 0; }; int main(int argc, char* argv[]) { static unsigned const xyz = binary&lt;111&gt;::value; return 0; } //====================== end of sample.cpp ========================== </pre> Конкретизация шаблона с значением 111 приводит:
<pre> //====================== start of sample.cpp ========================== template&lt;unsigned long N&gt; class binary { public: static unsigned long const value = binary&lt;N / 10&gt;::value &lt;&lt; 1 | N % 10; }; template&lt;&gt; class binary&lt;0&gt; { public: static unsigned long const value = 0; }; int main(int argc, char* argv[]) { if (argc &gt; 1) { static unsigned const two = binary&lt;10&gt;::value; } return 0; } //====================== end of sample.cpp ========================== </pre> Когда будет посчитано значение переменной two?
<pre> //====================== start of sample.cpp ========================== class Program { long threads_count; double time_of_work; public: char* prog_name; long version; long get_threads_count(); double get_time_of_work(); }; const Program&amp; get_my_program(); typedef double (Program::*my_getter)(); int main() { long Program::*pversion = &amp;Program::version; char* Program::*pmy_name = &amp;Program::prog_name; long (Program::*f_threads_count)() = &amp;Program::get_threads_count; Program&amp; prg = const_cast&lt;Program&amp;&gt;(get_my_program()); long my_version = (prg)-&gt;*pversion; char* my_name = prg.*pmy_name; long my_threads_count = (prg.f_threads_count)(); my_getter getter = &amp;Program::get_time_of_work; double my_time_of_work = (prg.*getter)(); return 0; } //====================== end of sample.cpp ========================== </pre> Какие присвоения значений членов класса переменным будут успешны в файле sample.cpp?
<pre> //====================== start of sample.h ========================== struct S_EMPTY {}; struct A { int i; double g; }; class B { long jj; public: char _str[6]; private: static char str_4_all[9]; }; union mytypes_t { int i; float f; } My; //====================== end of sample.h ========================== </pre> Доступ к каким из членов класса, описанных в файле sample.h (выше), является открытым?
<pre> //====================== start of sample.h ========================== struct S_EMPTY {}; struct A { int i; double g; }; class B { long jj; public: char _str[6]; private: static char str_4_all[9]; }; union mytypes_t { int i; float f; } My; //====================== end of sample.h ========================== </pre> Доступ к каким из членов класса, описанных в файле sample.h (выше), является закрытым?
<pre>//====================== start of sample.cpp ========================== class Person { public: long GetAge(); bool IsMale(); }; class Trader: private Person { public: long GetAge(); long GetAccount(); }; class Worker { public: long GetExperience(); long GetSalary(); }; class Developer : public Worker, private Person { }; class Boss: protected Worker { public: unsigned short GetLevel(); const char* GetDepartment(); }; class HeadOfAll: public Boss {};//====================== end of sample.cpp ========================== </pre> Для какого из производных классов в файле sample.cpp наследование выполнено для наследования интерфейса?
<pre>//====================== start of sample.cpp ========================== #include &lt;stdio.h&gt; class Region; class Person { public: short m_age; const char* m_name; const char* m_surname; const char* m_region_name; Person(const char* name) : m_name(name) {} operator short () {return m_age;} operator const char* () {return &quot;&quot;;} }; class Region { public: const char* region_name; const char* cheef_name; long size; Region(const char* region_nm = &quot;&quot;) : region_name(region_nm) {} operator long () {return size;} operator const char* () {return region_name;} }; int main() { Person p1(&quot;Vasily Ivanov&quot;); Region r; printf(&quot;Region number %u, driver %s&quot;, static_cast&lt;unsigned short&gt;(r), static_cast&lt;const char*&gt;(p1)); return 0; }//====================== end of sample.cpp ========================== </pre> Какие из имеющихся в файле sample.cpp конструкторов и операторов преобразования задействованы в операциях в функции main()?