Loading...
M.Yankov avatar M.Yankov 52 Точки

C++ Inheritance(extended) 04 - Задачата с механика.

Здравейте,

Направих задачата във Source.cpp, където е и main() метода - работи. Обаче аз исках да си разделя класовете в отделни файлове нa .h и .cpp. Имплементацията съм я качил във GitHub на този линк - https://github.com/M-Yankov/CPlusPlus/tree/master/04.InheritanceAdvanced/DemoAdvancedInheritance

При опит за компилация излизaт следните грешки:
Error C2248  'Car::isGoodCondition': cannot access private member declared in class 'Car' - \man.cpp    8
Error C2660 'Man::CrashCar': function does not take 1 arguments  - \source.cpp    63
Error C2511 'void Man::CrashCar(Car &)': overloaded member function not found in 'Man'  - \man.cpp    7
Error C2245 non-existent member function 'Man::CrashCar' specified as friend (member function signature does not match any overload) - \car.h   12   / тази грешка я получавам 3-пъти.

Доста се обърках, някой може ли да помогне къде греша?

Ползвам Visual Studio 2015 Update 2, Windows 10 64-bit.

Тагове:
0
C++ Programming 19/06/2016 16:21:12
lubomirjurukov avatar lubomirjurukov 63 Точки
Best Answer

Проблема е че car.h includva man.h и man.h includva car.h което реално прави рекурсивно includvane и се оправя с forward declaration на classa така class car; и после в cpp файла на man includvas car.h повече информация http://stackoverflow.com/questions/396084/headers-including-each-other-in-c http://en.cppreference.com/w/cpp/language/class

2
19/06/2016 18:11:42
M.Yankov avatar M.Yankov 52 Точки

Благодаря за отговора сега стана. Подозорах че е е нещо със #includes, не знаех как точно се прави forward declaration;

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