Loading...
ValentinT avatar ValentinT 4 Точки

C++ Advanced Test

Здравейте! Имам два въпроса относно теста от последната лекция, който покриваше темата Class Members.

На 2 от въпросите имаше грешки, едната грешка предполагам е била умишлена.

https://imgur.com/juSeJ5z  -> на тази снимка се вижда че декларираната като "friend' функция за предефениран оператор "по-малко" (<) се различава от дефинирата по долу функция за предефирниран оператор "извеждане" (<<). Това според мен е била уловката в този въпрос.

 

Колкото до другия въпрос https://imgur.com/0RmzxS7 -> на тази снимка се вижда също предефиниран метод за извеждане (<<), но при инициализацията на 3-те вектора има правописна грешка, което в случая би дало компилационна грешка, дори кодът да е верен. Тази грешка умишлено ли е там или просто при създаването на теста е допусната ? 

Поздрави,

Валентин

Тагове:
0
C++ Programming 30/09/2018 23:07:08
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки

Здравей,

Да, и за двете си прав, първото е нарочно уловка във въпроса, защото сигнатурата на friend-а се различава от сигнатурата на оператора дефиниран извън класа, съответно този оператор няма да има достъп до private полетата.

Второто е грешка (по-точно е лошо форматиране заради тест системата, неща, които са в <> се губят заради начина на обработка на текста на въпросите и ги оправяме на ръка, обаче понякога пропускаме), ще го вземем предвид при определянето на точките накрая - иначе без тази грешка, кодът ще изпечата конкатенацията на векторите (1 2 3 4 5 6).

Поздрави,

Жоро

0
Jovanna avatar Jovanna 186 Точки

Здравейте,

въпрос 07. от теста (колегата е дал линк: https://imgur.com/0RmzxS7)

какъв ще бъде реда на операциите , от ляво на дясно или от дясно на ляво в:

a << b << c; 

Поздрави!

 

0
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки

Здравей,

Редът съвпада с този, който е при cout << ... << ... - но най-добре напиши кода на оператора и сложи вътре едно извеждане на двата параметъра - така ще можеш да провериш за себе си, а и най-вероятно ще го запомниш по-добре.

Поздрави,

Жоро 

0
Jovanna avatar Jovanna 186 Точки

също, от предишния тест, въпрос 06. What should be inserted at the end of this code, so that there are no memory leaks (assume the Person class is defined and has a default ctor)?  

shared_ptr<Person> sharedP = make_shared<Person>(); 

Person p = new Person();     //не трябва ли да е: Person* p = new Person()?

Person people = new Person[3];     // не трябва ли да е: Person* people = new Person[3] ?

= delete p; delete[] people;

Поздрави!

0
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки

Да, това е пропуск, коригирах го

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.