Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
//CRaumschiff - Interface class CRaumschiff{ public: CRaumschiff(); CRaumschiff(int xPos, int yPos); ~CRaumschiff(); private: int m_yPos; int m_xPos; int m_Energie; float m_fGeschwindigkeit; }; //CRaumschiff.cpp #include <iostream> #include "CRaumschiff.h" using namespace std; //Konstruktor CRaumschiff::CRaumschiff() { m_Energie = 1000; m_xPos = NULL; m_yPos = NULL; m_fGeschwindigkeit = NULL; } //Konstruktor CRaumschiff::CRaumschiff(int xPos, int yPos) { //Initialisierung //Pos pruefen if(xPos >= 0 && xPos <= 800 && yPos >= 0 && yPos <= 600) { cout << "Gueltige Koordinaten" << endl; m_xPos = xPos; m_yPos = yPos; } else { cout << "Ungueltige Koordinaten fuer Raumschiff" << endl; m_xPos = 0; m_yPos = 0; } m_Energie = 1000; m_fGeschwindigkeit = NULL; } //Destruktor CRaumschiff::~CRaumschiff() { cout << "Ausgabe von Destruktor"; } //CHunter Interface class CHunter : public CRaumschiff { public: CHunter(void); ~CHunter(void); void angriff(); }; //CHunter.cpp #include <iostream> #include "CHunter.h" using namespace std; CHunter::CHunter(void) { cout << "Start Hunter"; } void CHunter::angriff(void) { cout << "Angriff!!!"; } CHunter::~CHunter(void) { cout << "Zerstoere Hunter!"; } //MAIN #include <iostream> using namespace std; #include "CRaumschiff.h" #include "CHunter.h" //Hauptprogramm int main() { CRaumschiff *pPilot = NULL; CRaumschiff *pGegner = NULL; CRaumschiff *pHunter = NULL; int xPos, yPos; cout << "Y-Pos von Gegner:"; cin >> yPos; cout << "X-Pos von Gegner:"; cin >> xPos; pPilot = new CRaumschiff[10](); pGegner = new CRaumschiff(); pHunter = new CHunter(); //Raumschiff zerstören delete[] pPilot; pPilot = NULL; delete pGegner; pGegner = NULL; delete pHunter; pHunter = NULL; cin >> yPos; return 0; } |
Möglichkeit? Ich behaupte mal ganz frech das alles andere eine Zumutung wäre.Eine Möglichkeit ist es nun beispielsweise die Include-Anweisung in den Header zu packen
Eine Möglichkeit ist es nun beispielsweise die Include-Anweisung in den Header zu packen
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
#include "CRaumschiff.h" class CHunter : public CRaumschiff { //... }; |
C-/C++-Quelltext |
|
1 2 3 4 |
class CHunter : public CRaumschiff { //... }; |
C-/C++-Quelltext |
|
1 2 3 |
#include "CRaumschiff.h" #include "CHunter.h" //... |
C-/C++-Quelltext |
|
1 2 3 |
#include "CRaumschiff.h #include "CHunter.h" //... |
Ja das habe ich ja oben schon beschrieben. Da gibt es eben zwei Ansätze. Den ersten, den Cubic sehr deutlich präferriert und den auch ich bevorzuge.
Dieser inkludiert innerhalb der Header-Datei alles, was benötigt wird. Ziel ist dabei die Benutzung einer Klasse möglichst einfach zu machen. Der Nutzer muss sich eben nicht Gedanken darüber machen, welche Dateien er alles brauchen könnte, weil sie die gewünschte Klasse verwenden möchte, sondern inkludiert einfach bspw. "CHunter.h" und den Rest übernimmt die Header-Datei. Wie das aussähe habe ich ja oben verdeutlicht.
C-/C++-Quelltext |
|
1 2 3 |
//main.cpp#include "CHunter.cpp" //CHunter.h#include "CRaumschiff.h" /* benötigt man damit die Vererbung klappt */ //CRaumschiff.h//kein Include |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//CDrone Interface #include "CRaumschiff.h" class CDrone : public CRaumschiff { public: CDrone(void); ~CDrone(void); void spioniere(); }; //CDrone.cpp #include <iostream> #include "CDrone.h" using namespace std; CDrone::CDrone(void) { cout << "Start Drone"; } void CDrone::spioniere(void) { cout << "spioniere"; } CDrone::~CDrone(void) { cout << "Zerstoere Drone!"; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
#ifndef CRAUMSCHIFF_H #define CRAUMSCHIFF_H class CRaumschiff { // ... }; #endif |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
#ifndef CHUNTER_H #define CHUNTER_H #include "CRaumschiff.h" class CHunter : public CRaumschiff { // ... }; #endif |
C-/C++-Quelltext |
|
1 2 |
#include "CHunter.h" //... |
C-/C++-Quelltext |
|
1 2 |
#include "CHunter.h" //... |
Werbeanzeige