Loading...

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

MartinBG avatar MartinBG 4803 Точки

Домашно [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 класа?

Тагове:
1
C++ Programming 08/04/2017 15:59:07
fantom4e avatar fantom4e 24 Точки

Здравейте, не бях сигорен дали трябва да отварям нова тема по въпроса за това го сложих тука.
Някой  да има проблем с проверяването на домашните от  лекцията за Фул ООП. Някои от домашните тръгват на Коде-Блокс, някои на Вижуал Студио,трети пък не тръгват на нито едно от двете.Дори моята задача 04. шах, която съм я писъл на Коде-Блокс  не  тръгва на Вижуал Студио.

0
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки

Здравей,

Какво имаш предвид, че не тръгва? 

Принципно домашните е достатъчно да съдържат само .h и .cpp файлове (т.е. самия код). Оттам нататък тези файлове дали ще ги Add-нете във Visual Studio, в Code:Blocks, в Qt, в CLion или ще ги компилирате на ръка от конзолата, няма значение. Виж на края на лекцията за Code Organization как взехме SmartArray класа и го компилирахме под няколко различни IDE-та от споменатите.

Ако компилираш файлове от домашно, по описания начин, би следвало да ти се компилират вярно, независимо от IDE-то, което ползваш. Ако не се компилира изобщо, значи нещо кодът не е наред. Ако се компилира под едно IDE, но не и под друго, значи най-вероятно се ползват някакви неща, които не са в C++ стандарта, който компилатора на съответното IDE поддържа.

Поздрави,

Жоро

0
fantom4e avatar fantom4e 24 Точки

Ох.. прав си,всичко тръгва като изполвам само хедер и соурс файловете.Извинявам се за моето невнимание и отново неуместен въпрос.
Поздрави!

0
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки

Е, няма проблем, нали затова е форумът.

Не е неуместен въпрос, просто е въпрос по материал, който сме покривали. Затова е хубаво да се опитваш да прегледаш в лекциите дали сме правили нещо подобно, когато те затрудни нещо, и ако и там не намериш, тогава да питаш - така ще е по-бързо за теб, а и учебният ефект ще е по-голям, защото сам ще си разрешил проблема.

Но това не означава, че не може да питаш като видиш, че губиш твърде много време върху нещо.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.