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

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

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

<pre> //====================== start of sample.cpp ========================== class Program { const char* prog_name; long threads_count; mutable double time_of_work; public: const char* get_name() const { return prog_name; } long get_threads_count() { return threads_count; } bool set_time_of_work(double in_time) const { time_of_work = in_time; return true; } bool add_time_of_work(double in_time) { time_of_work += in_time; return true; } }; const Program&amp; get_my_program(); int main() { const Program&amp; prg = get_my_program(); const char* prg_name1 = prg.get_name(); long my_thr_count1 = prg.get_threads_count(); bool result1 = prg.add_time_of_work(1); Program&amp; prg2 = const_cast&lt;Program& &gt;(prg); long my_thr_count2 = prg2.get_threads_count(); bool result2 = prg2.set_time_of_work(0); bool result3 = prg2.add_time_of_work(1); return 0; } //====================== end of sample.cpp ========================== </pre> При присвоении значений каким переменным в файле sample.cpp корректно используются корректно определённые методы?

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

Варианты ответа
my_thr_count1
prg_name1(Верный ответ)
result3(Верный ответ)
result1
my_thr_count2(Верный ответ)
result2(Верный ответ)
Похожие вопросы
<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.cpp ========================== class Program { char* prog_name; public: long threads_count; double time_of_work; long version; }; const Program&amp; get_my_program(); int main() { Program&amp; prg = const_cast<Program&amp;>(get_my_program()); long Program::*pmy_thr_count = &Program::threads_count; long my_threads_1 = *pmy_thr_count; long my_threads_2 = prg.*pmy_thr_count; long Program::*pversion = &amp;Program::version; long my_version = (&amp;prg)-&gt;*pversion; char* Program::*pmy_name = &amp;Program::prog_name; char* my_name = prg.*pmy_name; return 0; } //====================== end of sample.cpp ========================== </pre> Какие присвоения значений членов класса переменным будут успешны в файле sample.cpp?
<pre> //====================== start of sample.cpp ========================== class Program { static char* prog_name; volatile long threads_count; mutable double time_of_work; long version; public: static char* get_name() { return prog_name; } long* getthreadscount() { return &amp;threads_count; } volatile long* get_threads_count() { return &amp;threads_count; } static double get_time_of_work() { return time_of_work; } volatile long get_version() { return version; } }; //====================== end of sample.cpp ========================== </pre> Какие методы в файле sample.cpp корректно обращаются к членам класса?
<pre> //====================== start of sample.cpp ========================== #include &lt;iostream&gt; class Program; class ProgDataGetter { public: const char* prog_name(const Program&amp; prg); long get_version(const Program&amp; prg); }; class Program { long threads_count; double time_of_work; class Module { char* module_name; }; char* prog_name; long version; Module modules[16]; friend std::iostream&amp; operator &gt;&gt; (std::iostream&amp; io, Program&amp; prg); friend std::iostream&amp; operator &lt;&lt; (std::iostream&amp; io, const Program&amp; prg); friend class VersionGetter; friend const char* ProgDataGetter::prog_name(const Program&amp;); }; std::iostream&amp; operator &gt;&gt; (std::iostream&amp; io, Program&amp; prg) { io &gt;&gt; prg.prog_name &gt;&gt; prg.threads_count; } std::iostream& operator &lt;&lt; (std::iostream& io, const Program& prg) { io &lt;&lt; prg.prog_name &lt;&lt; prg.modules[0].module_name &lt;&lt; prg.modules[1].module_name; } class VersionGetter { public: long get_version(Program&amp; prg) { return prg.version; } }; const char* ProgDataGetter::prog_name(const Program&amp; prg) { return prg.prog_name; } long ProgDataGetter::get_version(const Program&amp; prg) { return prg.version;} //====================== end of sample.cpp ========================== </pre> Для каких функций и методов корректно организован доступ к членам класса Program файле sample.cpp?
<pre> //====================== start of sample.cpp ========================== class User { public: const char* get_name() const; inline int get_age const; private: volatile double get_balance(); mutable char* get_job_name(); protected: long long get_phone_number(); static int get_phone_prefix(); }; //====================== end of sample.cpp ========================== </pre> Какие методы класса User объявлены корректно?
<pre> //====================== start of sample.cpp ========================== volatile unsigned long idx; volatile double times[16]; struct Program { double proc_time; long long mem_size; long long threads[20]; }; int main() { volatile Program prg; long my_idx = idx; double my_time1 = times[1]; double pmy_time5 = dynamic_cast&lt;double*&gt;(&times[5]); double *pmy_time10 = const_cast&lt;double*&gt; (&times[10]); Program *pmy_prog = static_cast&lt;Program*&gt;(&prg); long long* pmy_thread3 = const_cast&lt;long long*&gt;(&prg.threads[3]); return 0; } //====================== end of sample.cpp ========================== </pre> Присвоения значений каким переменным в файле sample.cpp корректны?
<pre> //====================== start of sample.cpp ========================== class User { public: struct Region { short country_code; short city_code; static char* city_name; }; const char* name; int age; double balance; Region region; const char* get_name() const { return (*this).name; } int get_age() const { return this-&gt;age; } double get_balance() const { return (*this)-&gt;balance; } short get_country_code() const { return Region::country_code; } short get_city_code() const { return region.city_code; } const char* get_city_name() const { return Region::city_name; } }; //====================== end of sample.cpp ========================== </pre> В каких методах обращения к членам объекта класса user типа User корректны?
<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()?
<pre>//====================== start of sample.cpp ========================== 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;;} operator Region* (); }; class Region { public: const char* region_name; const char* cheef_name; long size; Region(const char* region_nm) : region_name(region_nm) {} operator long () {return size;} operator const char* () {return region_name;} operator Person () {return Person(cheef_name);} }; Person::operator Region* () {return new Region(m_region_name);}//====================== end of sample.cpp ========================== </pre> Какие операторы преобразования класса Person не являются корректными с точки зрения архитектуры?
<pre> //====================== start of sample.cpp ========================== class Program { public: static char* country; static const int version = 5; static short buid_num = 2223; static char* name; static long long date; }; Program prog; //====================== end of sample.cpp ========================== </pre> Какие объявления и обращения к членам класса и объекта prog, типа Program в файле sample.cpp корректны?