Daniello Napisano Kwiecień 3, 2006 Zgłoszenie Share Napisano Kwiecień 3, 2006 Napisałem prosty program składający się z klasy. Dopiero zaczynam się bawić w programowanie zorientowane obiektowo, więc wiecie. Oto kod: #include <iostream> class Cat { public: void SetAge(int wiekkota); void Zdanko(); int GetAge(); private: int originalWiek; }; Cat::SetAge(int wiekkota) { originalWiek = wiekkota; } Cat::GetAge() { return originalWiek; } Cat::Zdanko() { std::cout << "Teraz kotek ma " << GetAge() << " lat.\n"; } int main() { Cat Mruczek; std::cout << "Mruczek ma 0 lat.\n" std::cout << "Wpisz wiek Mruczka: "; int a; std::cin >> a; Mruczek.SetAge(a); Mruczek.Zdanko(); return 0; } Nie chce się skompilować. Wywala masę błędów: [daniel@localhost projects]$ g++ -o klasy klasy.cpp klasy.cpp:15: error: ISO C++ forbids declaration of ‘SetAge’ with no type klasy.cpp:15: error: prototype for ‘int Cat::SetAge(int)’ does not match any in class ‘Cat’ klasy.cpp:7: error: candidate is: void Cat::SetAge(int) klasy.cpp:15: error: ‘int Cat::SetAge(int)’ cannot be overloaded klasy.cpp:7: error: with ‘void Cat::SetAge(int)’ klasy.cpp:19: error: ISO C++ forbids declaration of ‘GetAge’ with no type klasy.cpp:24: error: ISO C++ forbids declaration of ‘Zdanko’ with no type klasy.cpp:24: error: prototype for ‘int Cat::Zdanko()’ does not match any in class ‘Cat’ klasy.cpp:8: error: candidate is: void Cat::Zdanko() klasy.cpp:24: error: ‘int Cat::Zdanko()’ cannot be overloaded klasy.cpp:8: error: with ‘void Cat::Zdanko()’ klasy.cpp: In function ‘int main()’: klasy.cpp:33: error: expected `;' before ‘std’ [daniel@localhost projects]$ O co mu chodzi ?? Wydaje mi się ze dobrze zapisałem kod. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
!Ci Napisano Kwiecień 3, 2006 Zgłoszenie Share Napisano Kwiecień 3, 2006 Przy definicji skladowych klasy musisz rowniez podac jaki typ jest zwracany, nawet jesli chodzi o void. Czyli void Cat::SetAge(int wiekkota) itd. dla reszty. Jeszcze brakuje srednika tutaj: std::cout << "Mruczek ma 0 lat.\n" Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Daniello Napisano Kwiecień 3, 2006 Autor Zgłoszenie Share Napisano Kwiecień 3, 2006 Spoko. Jak mogłem nie zauwazyć tak drobnych szczegółów. No a jednak, wyleciało mi z głowy Można na tym forum polegac na was...Znawcach C++ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
!Ci Napisano Kwiecień 3, 2006 Zgłoszenie Share Napisano Kwiecień 3, 2006 Aha jeszcze jeden taki maly drobiazg. Jak juz dodajesz naglowek #include <iostream> to wystarczy ze ustalisz sobie przestrzen nazw na poczatku programu using namespace std i bedziesz mogl korzystac z elementow iostream bez podawania std:: Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Daniello Napisano Kwiecień 3, 2006 Autor Zgłoszenie Share Napisano Kwiecień 3, 2006 Tak to akurat wiem, ze jest cos takiego jak standarowa przestrzeń nazw. Aż taki tępy nie jestem Ale dzięki za przypomnienie mi co i jak. W tym programie akurat nie było potrzeby wpisywac using namespace std; no bo bylo malo polecen std. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się