C++ taka sama nazwa atrybutu co metody w klasie
Ostatnio zmodyfikowano 2018-01-02 16:14
155178 Temat założony przez niniejszego użytkownika |
» 2018-01-02 15:56:27 Dzięki, zrozumiałem już ideę copy ctora. Mam jeszcze kolejny problem z tym samym projektem, a nie chcę śmiecić forum zakładając oddzielny temat. A mianowicie : KLASA Samochod.h : #pragma once #include<iostream> #include"DodatkoweWyposazenie.h" #include"Silnik.h" #include"Kolo.h" using namespace std;
class Samochod { Silnik * silnik; string nazwa; public: Samochod( const Samochod & samochod ); ~Samochod(); };
KLASA Silnik.h : #pragma once #include"Samochod.h" class Silnik { friend class Samochod; int moc; int liczbaCylindrow; Silnik( int moc, int liczbaCylindrow ); public: int getMoc(); int getLiczbaCylindrow(); ~Silnik(); };
KLASA Kolo.h : #pragma once #include"Samochod.h" class Kolo { friend class Samochod; int rozmiar; Kolo( int rozmiar ); public: int getRozmiar(); ~Kolo(); };
I COPY CTOR dla Samochodu : Samochod::Samochod( const Samochod & samochod ) { silnik = samochod.silnik; nazwa = samochod.nazwa; } Tutaj jest problem bo wyrzuca mi błąd przy deklaracji w pliku Samochod.h Silnik * silnik : -error C2143: błąd składniowy: brakuje „;” przed „*” -error C4430: brak specyfikatora typu - założono, że int. Uwaga: C++ nie obsługuje domyślnie typu int -error C2238: nieoczekiwany(e) token(y) poprzedzający(e) ";" Tak jakby nie wykrywało tej klasy Silnik. Mógłby ktoś wyjaśnić o co chodzi? A co do copy ctora to czy jest poprawny w tym przypadku ? Proszę nie brać pod uwagę zakomentowanych fragmentów, później dorobię pętlę for dla kolo =samochod.kolo i resztę atrybutów, ale robię to małymi kroczkami gdyż boję się o nadmiar błędów.
|
|
pekfos |
» 2018-01-02 16:14:21 Dołączanie nagłówków nie może mieć cyklu. Mam jeszcze kolejny problem z tym samym projektem, a nie chcę śmiecić forum zakładając oddzielny temat. |
Wiecznie ten sam argument. Nie chcę śmiecić na forum, więc naśmiecę w istniejącym temacie, bo to już nie jest na forum, co? Zamykam. |
|
1 « 2 » |