Домашно [06. Full C++ OOP] - Въпроси и коментари
Тема за въпроси, свързани с домашното от 6-та лекция - Full C++ OOP, както и за коментари по задачите.
Започвам с въпроси относно 3-та задача:
1. "Write a SequencePrinter class, which has a pure-virtual print() method and a pure-virtual setSequence(const SequenceGenerator& sequence) method. Derive a SequencePrinterToString, SequencePrinterToFile, SequencePrinterToConsole class. Any class implementing setSequence(const SequenceGenerator& sequence) should change the sequence the current object work with, with the sequence passed-in from the method."
Условието предполага, че setSequence метода тябва да бъде имлементиран във всяко от трите разклонения на класа SequencePrinter. Какво различно се очаква да прави този метод във всеки от тези класове?
Ето как изглежда тази част в моята имплементация, като setSequence е идентичен във всички разлонения и е по-скоро излишен в този си вид (по-добре да не е виртуален, а дефиниран и имплементиран в SequencePrinter). changeSequence метода го добавих само за да мога да имплементирам setSequence като pure virtual, т.е. също би бил излишен при другото решение. Явно пропускам нещо.
2. Какво се очаква да прави print() метода в SequencePrinterToString класа?
Здравей,
Какво имаш предвид, че не тръгва?
Принципно домашните е достатъчно да съдържат само .h и .cpp файлове (т.е. самия код). Оттам нататък тези файлове дали ще ги Add-нете във Visual Studio, в Code:Blocks, в Qt, в CLion или ще ги компилирате на ръка от конзолата, няма значение. Виж на края на лекцията за Code Organization как взехме SmartArray класа и го компилирахме под няколко различни IDE-та от споменатите.
Ако компилираш файлове от домашно, по описания начин, би следвало да ти се компилират вярно, независимо от IDE-то, което ползваш. Ако не се компилира изобщо, значи нещо кодът не е наред. Ако се компилира под едно IDE, но не и под друго, значи най-вероятно се ползват някакви неща, които не са в C++ стандарта, който компилатора на съответното IDE поддържа.
Поздрави,
Жоро
Ох.. прав си,всичко тръгва като изполвам само хедер и соурс файловете.Извинявам се за моето невнимание и отново неуместен въпрос.
Поздрави!
Е, няма проблем, нали затова е форумът.
Не е неуместен въпрос, просто е въпрос по материал, който сме покривали. Затова е хубаво да се опитваш да прегледаш в лекциите дали сме правили нещо подобно, когато те затрудни нещо, и ако и там не намериш, тогава да питаш - така ще е по-бързо за теб, а и учебният ефект ще е по-голям, защото сам ще си разрешил проблема.
Но това не означава, че не може да питаш като видиш, че губиш твърде много време върху нещо.