Форум за въпроси

Copy constructor by FMI

Copy constructor by FMI

by Георги Генчев -
Number of replies: 9

A(A& const); - вярно.
A(&A) - грешно.
A(const &A) - не присъства.
Първо си оправете задачите, после давайте тестове. Настоявам за анулиране на това недоразумение, наречено тест за тройка.

Прилагам и текст от cppreference:

A class can have multiple copy constructors, e.g. both T::T(const T&) and T::T(T&). If some user-defined copy constructors are present, the user may still force the generation of the implicitly declared copy constructor with the keyword default

Не мисля, че този тест оценява реално знанията на човек по обектно ориентирано програмиране и настоявам да мога да си изпратя проекта, който написах, но който няма да мога да представя след днешния тест.

In reply to Георги Генчев

Re: Copy constructor by FMI

by Калоян Тодоров -

Подкрепям колегата: Настоявам за анулиране на това недоразумение, наречено тест за тройка.

In reply to Калоян Тодоров

Re: Copy constructor by FMI

by Иво Стратев -
До колкото ми е известно изпитването по нива е въведенно заради прекалено многото оплаквания от начина на изпитване първия семестър. Ако имате по-добра идея за начин на изпитване, на която мнозинството от студенти ще е доволно съм сигурен, че преподвателите ще се радват да чуят предложенията Ви. :)


Относно настояването Ви - подкрепето го с реални причини, защо това се налага. Очевидно даденият пример на колегата не е достатъчна причина.


ПС. Нямам нищо общо с преподавателите или техните екипи. За първа година съм студент първи курс в специалност Информатика ако това има някакво значение за отговорът ми.



In reply to Георги Генчев

Re: Copy constructor by FMI

by Ивайло Илиев -

Тестът наистина беше подигравка с ООП-то. Нищо общо с реална оценка на знанията. Много некоректно зададени въпроси, един от които:

Може ли един клас да има член данна в себе си обект от същия тип? Отговорът ви е не, което не е така. Възможно е да има статична инстанция на себе си , тъй като тя не се съхранява в инстанциите на класа => няма рекурсия. Отделно може да има указател към обект от същия тип!

Ето ви малко https://stackoverflow.com/questions/2706129/can-a-c-class-include-itself-as-an-attribute, белким научите нещо. 


In reply to Ивайло Илиев

Re: Copy constructor by FMI

by Иво Стратев -
Тестът беше теоретичен изпит за 3-ка и като такъв тестваше само базови знания. Практическият изпит със сигурност ще послужи за реална оценка на знанията имайки в предвид задачата и ограниченото време за нея.


Отнсно конкретният посочен въпрос: При така зададеният въпрос очевидно верният отговор е не.

Относно посочените от Вас аргументи: статичните данни - не са член данни в техният смисъл (задайте си въпроса защо ни се налага да ползваме два различни термина: член данни и статични член данни или нестатични член данни и статични член данни), указател към обект от същия тип е резличен тип от обект от същия тип - най-малко имат визуална разлика - звезда :D 


Относно линка, който сте предоставили - до колкото ми е известно всеки от преподавателите води и курс по СДП, в който със сигурност се разглеждат класически структори като дървета (в частност бинарни) и списъци,  в които се ползват указатели към обекти от същия тип (подобно на посоченият пример това най-често са така наречените Node класове) такаче със сигурност този факт е добре известен на всеки от преподавателите ...


Относно следното Ви твърдение:  "Много некоректно зададени въпроси" посочете поне още един такъв за да се доближи броят им до много (много все пак предполага повече от един :D)


ПС. Нямам нищо общо с преподавателите или техните екипи. За първа година съм студент първи курс в специалност Информатика ако това има някакво значение за отговорът ми.

In reply to Иво Стратев

Re: Copy constructor by FMI

by Ивайло Илиев -

"Практическият изпит със сигурност ще послужи за реална оценка на знанията имайки в предвид задачата и ограниченото време за нея." - ще послужи, ако всички имаха право на задача.
"При така зададеният въпрос очевидно верният отговор е не.Относно посочените от Вас аргументи: статичните данни - не са член данни в техният смисъл" - тук май малко си се пообъркал. Ще ти отговоря с терминология, за разлика от твоите аргументи от сорта на ключови думи(статични нестатични и тн). Въпросът е зададен за КЛАС а не за ОБЕКТ. Ако правиш разлика между двете, ще се разтърсиш малко и ще разбереш, че статичните ЧЛЕН ДАННИ са данни на КЛАСА, като един вид се bind-ват към него, а не към обекта,за който не говорим. За указателя съм съгласен. 
Относно въпросите, очакваш да ти дам 6/7 ли? Можеше минимумът да е 5/9, както на предварителният, както и да е. Въпросите(поне в моя тест) не бяха съсредоточени върху принципите и добрите практики в ООП, а върху спецификации на езика C++.
Относно преподавателите, изразил съм се метафорично, няма нужда да даваш примери какви курсове водят, нямам нищо против тях. :) 


In reply to Георги Генчев

Re: Copy constructor by FMI

by Валентин Върбанов -

И аз правих същия тест и мога да кажа че този въпрос не е грешен. Като верен отговор беше отбелязан A(A const&) което е същото като A(const A&). И затова той е отбелязан като верен отговор. По същия начин няма разлика и къде се слага const при указатели следните изрази са еднакви: <const A*> и <A const*> което е различно от <A * const>. Като гледам и оригиналния пост не се прави разлика къде се слагат * и &  спрямо ключовата дума const.