Софтуерно Инженерство
Loading...
+ Нов въпрос
georgi.stef.georgiev avatar georgi.stef.georgiev 558 Точки
Best Answer

Не е задължително, просто са примери.

Но, обикновено когато 2 метода правят едно и също нещо и параметрите им представляват едно и също нещо, като само типовете им се различават, е добра практика да кръстиш самите параметри по един и същи начин. Така при четене на кода после е по-ясно, че това е overload на метод с една и съща логика и едни и същи параметри, но за различни типове данни

0
gydigydi avatar gydigydi 12 Точки

Явно не ми е ясна задачата.

Според мен първата функция прави масив инт и вика втората функция която попълва масива инт с позициите на форматиращите символи и след връщането от нея гледа позициите в инт масив ги замества в стринга от стринг масива и вече тука има 2 масива с еднакви имена.

стринг и инт. Това ми е проблема.

 

На мен лично втората функция ми е съвсем излишна и усложнява кода.

0
31/03/2017 13:21:41
georgi.stef.georgiev avatar georgi.stef.georgiev 558 Точки

Задачата е да направиш един клас, който приема един стринг, и после - като извикаш една от тези функции - замества в този стринг определени части с елементите от масивите. Функциите не правят никакви масиви, те приемат масиви. И класът се казва StringFormatter, съответно ще прави нещо свързано с формата на един стринг. Тоест класът прави нещо подобно на printf от C, а ако си писал примерно на C#, String.Format() прави нещо подобно, на Java също, на JavaScript също има подобен аналог, на PHP sprintf отново върши подобна работа.

Виж примера, който показва как се ползва обект от класа в задачата. Ако напишеш класа вярно, тогава примерния код трябва да даде точно резултатът, който е описан в  коментара.

string s = “Dear *:0, Our company *:1 wants to make you a Donation Of *:2 Million *:3 in good faith. Please send us a picture of your credit card”

StringFormatter formatter(s, “*:”);

formatter.format(new string[]{“Ben Dover”, “Totally Legit NonSpam Ltd”, “13”, “Leva”}, 4);

cout << s; //should print “Dear Ben Dover, Our company Totally Legit NonSpam Ltd wants to make you a Donation Of 13 Million Leva in good faith. Please send us a picture of your credit card” 

 

0
gydigydi avatar gydigydi 12 Точки

Това ми е ясно. Програмката ми работи с променено име на двата масива.

 

formatter.format(new string[]{“Ben Dover”, “Totally Legit NonSpam Ltd”, “13”, “Leva”}, 4);

formatter.format(new string[]{"Ben Dover", "Totally Legit NonSpam Ltd","13", "Leva"}, 4);

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

error: too many initializers for 'std::__cxx11::string [1] {aka std::__cxx11::basic_string<char> [1]}'|

 

0