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

Anonymous

unregistriert

1

22.12.2005, 15:25

listing 7.11

hallo zusammen.

hab ein kleines problem: und zwar erscheint folgende fehlermeldung beim listing 7.11, wenn ich für jede Klasse eine eigene hpp- bzw. cpp-Datei erstelle:

Temporäre Dateien und Ausgabedateien für "Listing7_11 - Win32 Debug" werden gelöscht.
--------------------Konfiguration: Listing7_11 - Win32 Debug--------------------
Kompilierung läuft...
Listing7_11.cpp
c:\programme\microsoft visual studio\myprojects\listing7_11\raumschiff.hpp(4) : error C2011: 'c_Raumschiff' : 'class'-Typ-Neudefinition
Minenleger.cpp
Raumschiff.cpp
Fehler beim Ausführen von cl.exe.

Listing7_11.exe - 1 Fehler, 0 Warnung(en)

Quelltext:

Listing7_11.cpp

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
// C++ für Spieleprogrammierer

// Listing 7.11

// Die einfache Vererbung

//

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

using namespace std;


// Hauptfunktion

//

int main ()
{
    // Variablen

    //

    c_Minenleger Miner;

    // Minenleger führt einige Aktionen aus

    //

    Miner.Starten ();
    Miner.MineLegen ();
    Miner.MineLegen ();
    Miner.Landen ();
    Miner.FarbeAendern ();

    return 0;
}


c_Raumschiff.hpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Basisklasse

//

class c_Raumschiff
{
protected:

    // Membervariablen

    //

    int m_Farbe;
    int m_Energie;

public:

    // Memberfunktionen

    //

};


c_Minenleger.hpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "Raumschiff.hpp"

// Abgeleitete Klasse für den Minenleger

//

class c_Minenleger : public c_Raumschiff
{
private:

    // Membervariablen

    //

    int m_Minen;

public:

    // Memberfunktionen

    //

};


wäre schön, wenn mir dies jemand erklären könnte.

Anonymous

unregistriert

2

22.12.2005, 15:55

Includeguards fehlen

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

22.12.2005, 15:59

Du bindest zweimal die Datei "Raumschiff.hpp" ein. Einmal direkt und das andere Mal indirekt über "Minenleger.hpp".
In Deinen Klassendateien schreibst Du am besten sowas wie...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#ifndef RAUMSCHIFF_HPP
#define RAUMSCHIFF_HPP

/*
    ...
*/

#endif // RAUMSCHIFF_HPP

Sowas wie "#pragma once" gibt es auch noch (raffen aber nicht alle Compiler).

edit: Ups, nix da war schneller... ;)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

22.12.2005, 19:25

Finde ich lustig, ich habe meine Header so organisiert, dass ich damit keine Probleme habe, so von wegen Design Fehler ;) :roll:
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

5

22.12.2005, 19:33

Das ist doch kein Designfehler? Das ist ein Konzeptfehler.

Werbeanzeige