Съвети за първа задача от ООП - C++
Здравейте колеги , от липса на време още се мъча как да реша първа задача от ООП
Правя няколко неща накуп и ме затрудняват задачите , ако може малко помощ?
Как да отделя един масив ?
Примерно имам един стринг масив:
Как да разделя текста от числата и char-овете ?
Искам да изкарам :
здравейте!
отворена тема, с подходящо за въпроса ми заглавие, затова ще питам тук. за въпросната първа задача - какво се предполага, че трябва да прави метода "void changeLine(const string& line);". препрочитам условието пак и пак и не схващам какво се продполага че трябва да напиша, отговарящо на това име? вторият въпрос - някакви ограничения относно const и по-специално референциите с които очевидно може да декларираме конструктори (пак както е показано в условието)? да разбирам че все едно си е нормална функция и да си използвам референции, навсякъде където мога, с цел забързване на програмата?
Благодаря предварително!
Здравей,
На първия ти въпрос - changeLine просто сменя нещото, което LineParser-а parse-ва. Примерно ако имаш няколко реда числа, вместо да създаваш нов LineParser за всеки от тях, можеш да създадеш само един и да му казваш .changeLine() за всеки нов ред.
На втория въпрос - методите трябва да са точно такива, каквито са в условието. Ако параметърът е const &, значи и при теб трябва да е така - какво ще правиш с така получения параметър в тялото на методите е твое решение. Идеята тук е както да упражните различните начини за работа с конструктори, референции и т.н., така и да сте подготвени ако ви се наложи да ползвате библиотеки, които имат такива изисквания (примерно в STL има изисквания за някои от параметрите на определени методи, когато искаш да ползваш твой клас с някой контейнер, например priority_queue).
Поздрави,
Жоро
дааа, има логика :D:D толкова време го мислех, а то е напълно логично, благодаря!
да, нов въпрос. още по време на лекцията, колега попита дали при обявяването на x(x) с двете точки преди бодито на конструктора може да използваме this->. жоро пробва и видяхме че даде някаква грешка и уточнихме че този this-> трябва да го използваме вътре във методите и конструкторите. НО, следната грешка: в самия клас, името на стринга който използвам (подавам към стринг стрийма) ми е "line". метода "void changeLine(const string& line);" има параметър "line", следователно ще е добра идея да използвам this->. НО, вътре в метода this->line = line; работи, докато line(line) и this->line(line) дава грешка. в демото предоставено от лектора примера си е с this->line=line (е, не е line, ами number, age и тн). въпроса ми е - когато използваме this->, x(x) е невалиден синтаксис винаги или? и защо line(line) не работи вътре в тялото на този метод, но подобни присвоявания си работят при конструкторите, когато ги правим там с двете точки преди бодито?
ако не се разбира въпроса ми, кажете, не знам колко добре се изразих.