Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
RinaLerrer
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 4
#1

Тест по ООП - C++

21.06.2013, 21:47. Просмотров 1539. Ответов 16
Метки нет (Все метки)

Помогите, пожалуйста, с текстом по С++!!!
Тема 13. Создание объектов класса
13.1 Пусть описан класс
class ClassA {int a; public: ClassA(); ClassA(int ); };
Какое из следующих выражений противоречит синтаксису С++
a) ClassA В;
b) ClassA B=ClassA(2);
c) ClassA B(2);
d) ClassA В();
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2013, 21:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тест по ООП (C++):

ООП - C++
помогите пожалуйста лабу сделать. не понимаю чет как ее делать((( я 7 вариант

ООП - C++
#pragma hdrstop #pragma argsused //#include "Student.hpp" //#include "Prof.hpp" //#include "Personne.hpp" #include <conio.h> ...

ООП - C++
Прочитал в википедии про ООП, но так толком и не понял. Подскажите, чем является создание программ с интерфейсом, допустим как калькулятор...

ООП - C++
проблема в классе квадрат- ниже код, я не прошу его переписывать, попробуйте кто то у себя запустите и будьте добры скажите почему там...

ООП - C++
наследование - понятно агрегация - понятно использование - не понятно. что такое использование? спасибо.

ООП - C++
1) Для класса символьной строки определить отношение лексикографического порядка, перегрузив с помощью дружественной функции операцию «<» ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TamaGOch
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 152
21.06.2013, 21:49 #2
b я так думаю...
a) тут конструктор по умолчанию
c) конструктор с int'ом
d) тоже конструктор по умолчанию
А т.к. варианта "против всех" нет, тогда b)
0
RinaLerrer
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 4
21.06.2013, 21:53  [ТС] #3
А почему b?

Добавлено через 45 секунд
А, методом исключения...Спасибо!

Добавлено через 1 минуту
Просто не могу врубиться, чем ответ a) отличается от ответа d)...
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
21.06.2013, 21:55 #4
Тут как бы ничего не противоречит синтаксису.
Но могу сказать, что 4 - это не создание объекта, а описание сигнатуры функции
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
21.06.2013, 22:10 #5
a) ClassA В; //создание объекта с помощью конструктора по умолчанию
b) ClassA B=ClassA(2); //создание временного объекта вызовом ClassA(2), инициализация объекта b конструктором копирования
c) ClassA B(2);//вызов конструктора с интовым параметром
d) ClassA В();//прототип функции, не тоже самое что ClassA *B = new ClassA();
0
RinaLerrer
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 4
21.06.2013, 22:16  [ТС] #6
Цитата Сообщение от Кудаив Посмотреть сообщение
a) ClassA В; //создание объекта с помощью конструктора по умолчанию
b) ClassA B=ClassA(2); //создание временного объекта вызовом ClassA(2), инициализация объекта b конструктором копирования
c) ClassA B(2);//вызов конструктора с интовым параметром
d) ClassA В();//прототип функции, не тоже самое что ClassA *B = new ClassA();
так неверный вариант какой будет?
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
21.06.2013, 22:16 #7
@Кудаив, "b) ClassA B=ClassA(2); //создание временного объекта вызовом ClassA(2), инициализация объекта b конструктором копирования"


А где здесь вызывается конструктор копирования? в конструктор копировани объект класса же передают.
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
21.06.2013, 22:29 #8
@RinaLerrer, если отвечать на вопрос
Цитата Сообщение от RinaLerrer Посмотреть сообщение
Какое из следующих выражений противоречит
то ответ будет - никакая, попытавшись создать объект следующим образом
Цитата Сообщение от RinaLerrer Посмотреть сообщение
d) ClassA В();
и опытаться дальше использовать объект B - будет ошибка компиляции

Добавлено через 1 минуту
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
А где здесь вызывается конструктор копирования? в конструктор копировани объект класса же передают.
ClassA B=ClassA(2);

тоже самое что

СlassA tmp(2);
ClassA B(tmp);
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.06.2013, 23:05 #9
Цитата Сообщение от RinaLerrer Посмотреть сообщение
Какое из следующих выражений противоречит синтаксису С++
Ответ: никакое.
Но! Следует обратить внимание на d.
Цитата Сообщение от RinaLerrer Посмотреть сообщение
Тема 13. Создание объектов класса
С этим оно никак не коррелируется.

Добавлено через 26 секунд
Цитата Сообщение от go Посмотреть сообщение
С этим оно никак не коррелируется.
Хотя, прототип функции, которая вернет временный объект.

Добавлено через 8 минут
Цитата Сообщение от Кудаив Посмотреть сообщение
b) ClassA B=ClassA(2); //создание временного объекта вызовом ClassA(2), инициализация объекта b конструктором копирования
Думаете? http://ideone.com/5qN1Ln
1
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
22.06.2013, 10:15 #10
Цитата Сообщение от go Посмотреть сообщение
Думаете?
вот черт! это же явный вызов конструктора! пардон - глюкануло

Добавлено через 3 минуты
@go, благодарю!
0
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
22.06.2013, 15:09 #11
Цитата Сообщение от go Посмотреть сообщение
b) ClassA B=ClassA(2); //создание временного объекта вызовом ClassA(2), инициализация объекта b конструктором копирования
По идее да. Но тут, если не ошибаюсь, это copy constructor elision, то есть оптимизация, чтобы лишний конструктор не вызывался.
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.06.2013, 16:07 #12
Цитата Сообщение от go Посмотреть сообщение
Думаете? http://ideone.com/5qN1Ln
-fno-elide-constructors
0
RinaLerrer
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 4
22.06.2013, 17:41  [ТС] #13
Тема 1. Класс string
1.1 Пусть созданы объекты класса string s1 и s2. Для проверки равенства строк s1 и s2 следует использовать следующее выражение ____________________

А вот здесь ответ: s1==s2, да?
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
23.06.2013, 01:43 #14
Цитата Сообщение от Jupiter Посмотреть сообщение
-fno-elide-constructors
И? Стандарт разрешает в некоторых случаях опускать вызов copy-constructor.
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
23.06.2013, 01:49 #15
@RinaLerrer, Да - там перегружен оператор сравнения.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 01:49
Привет! Вот еще темы с ответами:

ООП - C++
Всем привет! Если можно, не могли бы вы ответить на пару вопросов по ООП, а то что-то не могу понять. Вопросы: Зачем используются такие...

ООП в С++ - C++
Здравствуйте! Ответьте пожалуйста на несколько вопросов... p.s. буду рад , если ответы будут сопровождаться примерами :) Хочу...

ООП - C++
Господа у меня возникло 2 вопроса по ООП т.к. только не давно начал его изучать . 1) Не как не могу понять для чего умные люди его...

ООП на С++ - C++
Помогите пожалуйста!! Не понимаю как это сделать(( Создать программу с классом Student порождающий обьекты - данные об студентах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.06.2013, 01:49
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru