CodeBlocks - Header mit Cpp Verbinden?

Executor1

Lt. Junior Grade
Registriert
Okt. 2007
Beiträge
359
Seas,

erstmal vorraus, ich habe die Suche sehr oft bemüht und in dem Tutorial wo ich diesen Quelltext herhabe wird es auch nicht erläutert.

Ich habe eine Main.cpp und eine Klasse "Box" die ich auslagern soll.
Nun habe ich diese in eine Box.cpp und eine Box.h ausgelagert. Aber beim Compilen des Hauptprogrammes fragt der Compiler nach dem Typ "Box" obwohl meiner Meinung nach alles eingebuden ist:

Main.cpp:
Code:
					  // Kapitel 5 - Programm 9 - BOXEN2.CPP
#include <iostream>
#include "BOX.H"

int main()
{
Box Klein, Mittel, Grosz;	     //Drei Boxen

   Klein.Setze(5, 7);
				  // Die mittlere Box verwendet die Werte,
				  // die der Konstruktor vorgibt
   Grosz.Setze(15, 20);

   std::cout << "Der Flaecheninhalt der keinen Box ist " << Klein.HoleFlaeche() << "\n";
   std::cout << "Der Flaecheninhalt der mittleren Box ist " << Mittel.HoleFlaeche() << "\n";
   std::cout << "Der Flaecheninhalt der grossen Box ist " << Grosz.HoleFlaeche() << "\n";

   return 0;
}


// Ergebnis beim Ausführen
//
// Der Flaecheninhalt der keinen Box ist 35
// Der Flaecheninhalt der mittleren Box ist 64
// Der Flaecheninhalt der grossen Box ist 300

Box.cpp:
Code:
                                  // Kapitel 5 - Programm 8 - BOX.CPP
#include "BOX.h"

Box::Box(void)        //Implementation des Konstruktors
{
   Laenge = 8;
   Breite = 8;
}

// Diese Methode setzt die Größe der Box auf die beiden Parameter
void Box::Setze(int NeueLaenge, int NeueBreite)
{
   Laenge = NeueLaenge;
   Breite = NeueBreite;
}

Box::~Box(void)       //Implementation des Destruktors
{
   Laenge = 0;
   Breite = 0;
}


// Ergebnis beim Ausführen
//
// Diese Implementationsdatei kann nicht ausgeführt werden

Box.h:
Code:
 #ifndef BOX_H_INCLUDED
#define BOX_H_INCLUDED

                                 // Kapitel 5 - Programm 7 - BOX.H
class Box
{
   int Laenge;
   int Breite;
public:
   Box(void);         //Konstruktor
   void Setze(int NeueLaenge, int NeueBreite);
   int HoleFlaeche(void) {return (Laenge * Breite);}
   ~Box(void);        //Destruktor
};

#endif


// Ergebnis beim Ausführen
//
// Diese header-Datei kann nicht kompiliert oder ausgeführt werden.

Ich nehme an dass ich irgendwie die .h und die .cpp verbinden muss. Aber wie?

MfG
 
Und wie kommst du zu der Annahme? oO

Sind die beiden CPP-Dateien in einem Projekt?
 
Ich komme zu der Annahme weil ich beim googlen etwas derartiges gefunden habe.
Ja beide sind in meinem Projekt:

Main.cpp + Box.cpp in Ordner "Sources"
Box.h in Ordner "Header"

Die beiden Ordner sind im Strukturbaum Unterordner des Projekts.

// Die Schrift von Box.h ist gräulich, hat das etwas zu bedeuten?
 
Hast du die Datei box.cpp in die Build-Targets miteingefügt?

Das machst du in den Projekt-Eigenschaften (oder am besten gleich beim Erstellen der Datei).
 
Genau, sowas hab ich auch beim Googlen gefunden. Finde aber keine Möglichkeit wo und wie ich dies tun soll.

// Habs gefunden!! - Zu finden bei "Properties" - "Build Target"

Danke

MfG
 
Zuletzt bearbeitet:
Zurück
Oben