Dołączanie plików nagłówkowych
Ostatnio zmodyfikowano 2014-10-26 12:34
akcza Temat założony przez niniejszego użytkownika |
Dołączanie plików nagłówkowych » 2014-10-25 21:31:34 Witam, mam problem z kodem, przypuszczam, że jest coś nie tak z dołączeniem plików nagłówkowych. Treść błędów: [Error 1 error C2146: syntax error : missing ';' before identifier 'srodek' c:\users\hp\documents\visual studio 2013\projects[zmpo] lista2 zad1 okrag[zmpo] lista2 zad1 okrag\okrag.h 8 1 [ZMPO] Lista2 zad1 okrag Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\hp\documents\visual studio 2013\projects[zmpo] lista2 zad1 okrag[zmpo] lista2 zad1 okrag\okrag.h 8 1 [ZMPO] Lista2 zad1 okrag Error 3 error C2146: syntax error : missing ';' before identifier 'srodek' c:\users\hp\documents\visual studio 2013\projects[zmpo] lista2 zad1 okrag[zmpo] lista2 zad1 okrag\okrag.h 8 1 [ZMPO] Lista2 zad1 okrag Error 4 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\hp\documents\visual studio 2013\projects[zmpo] lista2 zad1 okrag[zmpo] lista2 zad1 okrag\okrag.h 8 1 [ZMPO] Lista2 zad1 okrag
Punkt.cpp #include "Punkt.h" #include "Okrag.h"
Punkt::Punkt( double x, double y ) { this->x = x; this->y = y; } Punkt.h #ifndef punkt_h #define punkt_h #include "Okrag.h"
class Punkt { private: double x; double y; public: Punkt() { }; Punkt( double x, double y ); private: };
#endif Okrag.cpp #include "Okrag.h" #include "Punkt.h"
Okrag::Okrag( double x, double y, double promien ) { this->srodek = Punkt( x, y ); this->promien = promien; }
Okrag::Okrag( double promien ) { this->promien = promien; } Okrag.h #ifndef okrag_h #define okrag_h #include "Punkt.h"
class Okrag { private: Punkt srodek; double promien; public: Okrag( double x = 0, double y = 0, double promien = 0 ); Okrag( double promien ); };
#endif main.cpp #include "Punkt.h" #include "Okrag.h" #include <stdio.h>
int main( char * args[] ) { Okrag okrag( 8.5, 5.0, 7.0 ); Punkt punkt( 2.2, 7 ); getchar(); return 0; } |
|
pekfos |
» 2014-10-26 09:43:13 #ifndef punkt_h #define punkt_h #include "Okrag.h"
|
Nie możesz tu dołączyć Okrag.h. |
|
Jacob99 |
» 2014-10-26 11:25:28 Tak jak wyżej napisał pekfos. Nie możesz dołączyć "Okrag.h" do "Punkt.h", bo jest to podstawowy błąd przy obiektowości. Zapętlasz kod, dlatego nie będzie on działał. Bo w klasie punkt chcesz korzystać z klasy okrag, a w klasie okrag z klasy punkt. |
|
akcza Temat założony przez niniejszego użytkownika |
» 2014-10-26 11:40:23 To jak to rozwiązać skoro w Okrag.h potrzebuje Punkt.h, a w Punkt.h potrzebuje Okrag.h? Myślałem, że jeśli dodam #ifndef i #define to to zapobiegnie błędom. |
|
Jacob99 |
» 2014-10-26 11:42:17 A po co ci w klasie punkt obiekt okrąg? |
|
akcza Temat założony przez niniejszego użytkownika |
» 2014-10-26 11:44:18 Mam tam zakomentowaną funkcję float odleglosc( Okrag & okrag ) { }; która ma liczyć odległość danego punktu od okręgu. |
|
Monika90 |
» 2014-10-26 11:46:19 usuń #include "okrag.h" z pliku "punkt.h", dodaj w nim (w pliku "punkt.h") deklarację a definicję funkcji odleglosc przenieś do pliku "punkt.cpp" |
|
akcza Temat założony przez niniejszego użytkownika |
» 2014-10-26 11:51:36 A dlaczego wtedy to działa, a jak w Okrag.h dodam zamiast #include "Punkt.h" class Punkt; to rzuca błędem? |
|
« 1 » 2 |