Polymorphism - Exercise: 5. Word
Здравейте,
не мога да си обясня как:
void init() {
this->commandTransforms.clear();
for (std::pair<std::string, std::shared_ptr<TextTransform> > p : this->initCommands()) {
commandTransforms[p.first] = p.second;
}
}
събира всички видове трансформации? Как върти в контейнер-фунцкия и как тази контейнер-функция знае да мине и събере всички видове резултати на тази функция от всеки override? При мен command Transform винаги ми стои с size 1 с този uppercase трансформ, който си идва със скелета.
Направил съм extended версия на commandinterface, в която съм задал override на initCommands(); но аз не виждам как изобщо в init() се знае за тези override и от там да пълни в един и същ вектор от команди, но от различни функции на обекти.. И от там винаги в handleInput-а ми гърми при invokeOn, тъй като изобщо нямам други трансоформации в commandTransforms..
Файловете ми:
CommandInterfaceExtended.h
Initialization.h
Благодаря предварително!
Поздрави,
Илиян
Привет,
Като видя, че е писал колегата @ditchev и знам, че всичко е 6 :)
Шегата на страна.
Илиян, дадоха ти добри насоки. Опитай се да ги имплементираш и се върни пак да споделиш какво се е получило.
Поздрави
Ох да.. тотално забравих да направя обект с extended версията.. Благодаря за насоките.
Случих ги тези неща, получавам 40/100, защото сега:
подминава uppercase версията на initCommands(), следователно после гърми в handleInput(), тъй като няма такава команда.
Aко закоментирам initCommands() в CommandInterfaceExtended.h, тогава взема само uppercase. И това е логично, защото ако тази фунцкия я няма в подкласа, я взема от основния клас, ако я има, си я взема от там. Но как да я взема и то двете места при пълненето commandTransforms в init()..
Файлове:
CommandInterfaceExtended.h
Initialization.h
Поздрави,
Илиян
Добре.. 100/100. Пф, тази беше наистина трудна.
Това оправи проблема и все пак ми гърмеше на 2 от тестовете.
И после хванах, че в CutTransform нещо не правя окей с cut-ването и със substr() взе че стана. :)
Благодаря пак и поздрави!
Илиян
Браво, Илиян!
Задачата наистина е интересна.
Чакай да видиш тези от Abstract Classes (:
Поздрави