Du bist nicht angemeldet.

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

11

17.02.2009, 20:47

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
#ifndef NAME_DER_DATEI_H_
#define NAME_DER_DATEI_H_

#include <iostream>
#include "Minenleger.hpp"
#include "Raumschiff.hpp"

#endif

using namespace std;

CMinenleger::CMinenleger(){
              m_Minen = 10;
              cout << "Konstruktor wurde aufgerufen" << endl;
}
void CMinenleger::Mine_Legen(){
     if(m_Minen <= 0){
                cout << "Keine Minen mehr übrig." << endl;
     }else{
           m_Minen--;
           cout << "Mine gelegt. Es sind noch " << m_Mine << " Minen übrig." << endl;
     }
}
void CMinenleger::Starten(){
     cout << "Minenleger " << m_Name << " ist gestartet!" << endl;
}
void CRaumschiff::Landen(){
     cout << "Minenleger " << m_Name << " ist gelandet!" << endl;
}
void CRaumschiff::Init(){
     cout << "Name des Minenlegers eingeben! ";
     cin.get(m_Name, 29);
}


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
#ifndef NAME_DER_DATEI_H_ //Wenn NAME_DER_DATEI_H nicht definiert ist

#define NAME_DER_DATEI_H_ //definere es


#include <iostream>
#include "Raumschiff.hpp"

#endif //das ende der ersten Zeile 


using namespace std;

CRaumschiff::CRaumschiff(){
              m_Energie = 1000;
              cout << "Konstruktor wurde aufgerufen" << endl;
}
void CRaumschiff::Starten(){
     cout << "Raumschiff " << m_Name << " ist gestartet!" << endl;
}
void CRaumschiff::Landen(){
     cout << "Raumschiff " << m_Name << " ist gelandet!" << endl;
}
void CRaumschiff::Init(){
     cout << "Name des Raumschiffes eingeben! ";
     cin.get(m_Name, 29);
}


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class CRaumschiff{
      protected:
                //Membervariablen. Wie private, nur dass die anderen Klassen (Vererbung) auch noch Zugriff haben.

                int m_Energie;
                char m_Name[50];
                
      public:
             //Memberfunktionen

             //Konstruktoren haben KEINEN Rückgabetyp!

             CRaumschiff();
             void Starten();
             void Landen();
             void Init();
};

12

17.02.2009, 20:51

die #ifndef, #define und #endif gehören in die Headerdateien.
Also die dateien die mit hpp enden, nicht die cpp.

Außerdem vermiss ich hier die Headerdatei vom Minenleger

13

17.02.2009, 20:58

Das wird ausgegeben:

Zitat


------ Erstellen gestartet: Projekt: Klassen_Vererbung, Konfiguration: Debug Win32 ------
Kompilieren...
Klassen_Vererbung.cpp
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9) : error C2011: 'CMinenleger': 'class' Typneudefinition
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9): Siehe Deklaration von 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9) : error C2011: 'CRaumschiff': 'class' Typneudefinition
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(8) : error C2079: 'Raumschiff' verwendet undefiniertes class 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(9) : error C2079: 'Minenleger' verwendet undefiniertes class 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(12) : error C2228: Links von ".Init" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(13) : error C2228: Links von ".Starten" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(14) : error C2228: Links von ".Landen" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(16) : error C2228: Links von ".Init" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(17) : error C2228: Links von ".Starten" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\klassen_vererbung.cpp(18) : error C2228: Links von ".Landen" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
Minenleger.cpp
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9) : error C2504: 'CRaumschiff': Basisklasse undefiniert
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9) : error C2011: 'CRaumschiff': 'class' Typneudefinition
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9) : error C2011: 'CMinenleger': 'class' Typneudefinition
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9): Siehe Deklaration von 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(7) : error C2027: Verwendung des undefinierten Typs "CMinenleger"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9): Siehe Deklaration von 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(7) : error C2059: Syntaxfehler: ')'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(7) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(7) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(11) : error C2027: Verwendung des undefinierten Typs "CMinenleger"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9): Siehe Deklaration von 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(12) : error C2065: 'm_Minen': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(15) : error C2065: 'm_Minen': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(16) : error C2065: 'm_Mine': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(19) : error C2027: Verwendung des undefinierten Typs "CMinenleger"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9): Siehe Deklaration von 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(20) : error C2065: 'm_Name': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(22) : error C2027: Verwendung des undefinierten Typs "CRaumschiff"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(23) : error C2065: 'm_Name': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(25) : error C2027: Verwendung des undefinierten Typs "CRaumschiff"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(27) : error C2065: 'm_Name': nichtdeklarierter Bezeichner
Code wird generiert...
Kompilieren...
Raumschiff.cpp
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9) : error C2011: 'CMinenleger': 'class' Typneudefinition
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(9): Siehe Deklaration von 'CMinenleger'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9) : error C2011: 'CRaumschiff': 'class' Typneudefinition
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(11) : error C2027: Verwendung des undefinierten Typs "CRaumschiff"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(11) : error C2059: Syntaxfehler: ')'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(11) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(15) : error C2027: Verwendung des undefinierten Typs "CRaumschiff"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(16) : error C2065: 'm_Name': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(18) : error C2027: Verwendung des undefinierten Typs "CRaumschiff"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(19) : error C2065: 'm_Name': nichtdeklarierter Bezeichner
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(21) : error C2027: Verwendung des undefinierten Typs "CRaumschiff"
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.hpp(9): Siehe Deklaration von 'CRaumschiff'
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\raumschiff.cpp(23) : error C2065: 'm_Name': nichtdeklarierter Bezeichner
Code wird generiert...
Das Buildprotokoll wurde unter "file://g:\Eigene Datein\Programmieren\Visual Studio 2008\Klassen_Vererbung\Klassen_Vererbung\Debug\BuildLog.htm" gespeichert.
Klassen_Vererbung - 39 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



Minenleger.hpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef NOCHEINNAME_H_
#define NOCHEINNAME_H_

#include "Raumschiff.hpp"
#include "Minenleger.hpp"

#endif

class CMinenleger : public CRaumschiff{
      private:
              //Membervariablen. Die geerbten Variablen bleiben

              int m_Minen;
      public:
             //Memberfunktionen, die geerbten bleiben, außer man überschreibt sie

             CMinenleger();
             void Mine_Legen();
             void Starten();
             void Landen();
             void Init();
};


Raumschiff.hpp:

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
#ifndef NAME_H_
#define NAME_H_

#include "Minenleger.hpp"
#include "Raumschiff.hpp"

#endif

class CRaumschiff{
      protected:
                //Membervariablen. Wie private, nur dass die anderen Klassen (Vererbung) auch noch Zugriff haben.

                int m_Energie;
                char m_Name[50];
                
      public:
             //Memberfunktionen

             //Konstruktoren haben KEINEN Rückgabetyp!

             CRaumschiff();
             void Starten();
             void Landen();
             void Init();
};

14

17.02.2009, 21:01

Das "#endif" gehört ans Ende der Headerdateien...

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
#ifndef NAME_H_
#define NAME_H_

#include "Minenleger.hpp"
#include "Raumschiff.hpp"

class CRaumschiff{
      protected:
                //Membervariablen. Wie private, nur dass die anderen Klassen (Vererbung) auch noch Zugriff haben.

                int m_Energie;
                char m_Name[50];
               
      public:
             //Memberfunktionen

             //Konstruktoren haben KEINEN Rückgabetyp!

             CRaumschiff();
             void Starten();
             void Landen();
             void Init();
}; 

#endif // <--- Dahin



Und wenn das Raumschiff.hpp ist, inkludiert es sich selbst?
fka tm

15

17.02.2009, 21:10

DANKE! Nur noch 3 Fehler!

Zitat


------ Erstellen gestartet: Projekt: Klassen_Vererbung, Konfiguration: Debug Win32 ------
Kompilieren...
Klassen_Vererbung.cpp
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(6) : error C2504: 'CRaumschiff': Basisklasse undefiniert
Minenleger.cpp
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.cpp(16) : error C2065: 'm_Mine': nichtdeklarierter Bezeichner
Raumschiff.cpp
g:\eigene datein\programmieren\visual studio 2008\klassen_vererbung\klassen_vererbung\minenleger.hpp(6) : error C2504: 'CRaumschiff': Basisklasse undefiniert
Code wird generiert...
Das Buildprotokoll wurde unter "file://g:\Eigene Datein\Programmieren\Visual Studio 2008\Klassen_Vererbung\Klassen_Vererbung\Debug\BuildLog.htm" gespeichert.
Klassen_Vererbung - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Wie lange dauert es, bis ich das allein lösen kann?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

16

17.02.2009, 21:13

Nimm aus dem Minenleger.hpp den include von Minenleger.hpp raus und aus dem Raumschiff.hpp beide includes.

17

17.02.2009, 21:14

Zitat von »"RSP-Fan"«

Wie lange dauert es, bis ich das allein lösen kann?

Bis es dir zu blöd wird, immer wieder über den/die selben Fehler zu stolpern. ;)
fka tm

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

18

17.02.2009, 21:16

Zitat von »"TrikkieMikkie"«

Zitat von »"RSP-Fan"«

Wie lange dauert es, bis ich das allein lösen kann?

Bis es dir zu blöd wird, immer wieder über den/die selben Fehler zu stolpern. ;)


Oder er merkt, dass man mit Doppelklick zu dem Fehler gelangen kann und wenn man die Meldungen liest einem das meist sehr viel sagt, was man falsch gemacht hat..

19

17.02.2009, 21:27

Den letzten Fehler mit der Mine hab ich selbst geschafft, aber jetzt hab ich schon wieder 5 Fehler????!!!!!

Zitat


------ Erstellen gestartet: Projekt: Klassen_Vererbung, Konfiguration: Debug Win32 ------
Kompilieren...
Minenleger.cpp
Verknüpfen...
Raumschiff.obj : error LNK2005: "public: void __thiscall CRaumschiff::Landen(void)" (?Landen@CRaumschiff@@QAEXXZ) ist bereits in Minenleger.obj definiert.
Raumschiff.obj : error LNK2005: "public: void __thiscall CRaumschiff::Init(void)" (?Init@CRaumschiff@@QAEXXZ) ist bereits in Minenleger.obj definiert.
Klassen_Vererbung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall CMinenleger::Landen(void)" (?Landen@CMinenleger@@QAEXXZ)" in Funktion "_main".
Klassen_Vererbung.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall CMinenleger::Init(void)" (?Init@CMinenleger@@QAEXXZ)" in Funktion "_main".
G:\Eigene Datein\Programmieren\Visual Studio 2008\Klassen_Vererbung\Debug\Klassen_Vererbung.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
Das Buildprotokoll wurde unter "file://g:\Eigene Datein\Programmieren\Visual Studio 2008\Klassen_Vererbung\Klassen_Vererbung\Debug\BuildLog.htm" gespeichert.
Klassen_Vererbung - 5 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

20

17.02.2009, 21:28

Bitte immer den aktuellen Code dazumachen. wir können ja nicht wissen wie es aktuell bei dir auf dem Bildschirm aussieht

Werbeanzeige