С++ Адванс
Здравейте,
Има ли други, които са като мен и още на първата домашна ми идва да си прегриза вените? Никога не съм се занимавал с програмиране,но ми е интересно.Затава моля ако има някой да сподели как се оправя(какво ползва за поълнителни материали)? Изобщо всички ли се оправят само с материалите от курса?Абе изобщо нека тук се споделят материали полезни за всички.
П.П. Жоро, предполагам си чел доста книги за с++, моля сподели някоя която си заслужава.Във нета материалите(поне безплатните) са доста повърхностни(поне тези които аз съм намирал).
Мерси за насоките. Това да "подкарам" мулти-файлов проект беше най-лесното. Затруднението ми идва от слабото познаване на класове и работата с тях, затруднението да разбера правилно наличният код (четене на код) и не доброто зацепване на първата лекция(референция към оператот .....каквоооо).Много добре обясняваш(чак зарибително), но май летвата на нивото ми е топлова ниско, че немога и да се спъна .
Ясно ми е, че е вид функция ,ясно е какво връща но ми се губи идеята за връзка с др.код (задавам какво да прави >> в мейна ли ?). За някой това е елементарно но уви. Явно нямам елементарни базови знания и пуснах темата с цел който има или е чел допълнителни материали да сподели(било то и учебник за 5-ти клас, който да е смислен) Просто явно презентациите са ми недостатъчни(или не ги разбирам).
Ахаа, проблемът ти май идва от това, че твърде много се опитваш да разбереш :D
Не сме го учили още това с този operator>>, и идеята е да свикнете да работите с код, който не разбирате на 100% (защото в големи проекти с много хора не само може да има неща, които не знаете, ами и като цяло няма как да познавате цялата кодова база).
В тази задача реално те интересува само че имаш OrderedInserter конструктор, който получава вектор, и после че има insert функция, на която се подават Company обекти (по-конкретно указатели май бяха, не помня условието). Само тези две неща те вълнуват как се ползват от чуждия код - всичко останало е бонус информация, но реално не ти трябва. Ако твоя код работи, и ако чуждия код ти предава правилно оформени обекти, значи и задачата ще работи - няма нужда да се интересуваш как точно работи. Това се нарича разделение на отговорностите (separation of concerns) - всяко независимо парче от кода (обикновено това е всеки клас) си знае неговата работа и не се интересува от другите парчета, интересува се само и единствено от комуникацията с тях (тоест какви методи му се извикват и то какви методи вика, тоест "интерфейса" между него и останалия код). В твоя случай как се случва четенето, как се заделя памет, как се печата резултата - това теб не те вълнува, или поне не ти е нужно за да си изпълниш твоята част от задачата. По същия начин както мен не ме интересува как точно са изкопали нефта, който се гори в ТЕЦ-а за да имам ток и да си пусна компютъра, за да ти отговоря на въпроса - вълнувам се само от това какво трябва да ти кажа и какво трябва да кликна за да направя отговор в този форум (и да го напсувам веднъж, защото без да исках натиснах грешен бутон и си го изтрих това всичкото дето го пиша сега преди малко :D).
Иначе почти си се ориентирал - това се нарича stream extraction operator overload, тоест нещо, което позволява да правим Company c; cin >> c; - ще го учим в лекция 4.
С две думи - ако забиеш на нещо, пробвай да видиш дали можеш да си решиш задачата, без да го разбираш. Фокусирай се само върху твоя код и върху начина, по който работи с чуждия код. В повечето случаи това е достатъчно да решиш задачата. Не те вълнува как са създадени тези Company обекти и как ще бъдат изведени после. Интересува те какво трябва да направиш с тях и с вектора.
И после, разбира се, питай във форума за неща, които не разбираш, независимо дали си решил задачата или не. Имаш си ниво, а свикването с класове и обекти ще стане в този курс - затова задачите ги ползват толкова много, освен, че целим да преподаваме нов материал, целим да свикнем да работим с такива неща. Едва на първото такова домашно сме, с писане ще стане работата, и ако ползваш този принцип за фокусиране само над нужното, най-вероятно няма да имаш грижи с повечето задачи.
Поздрави,
Жоро