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

1

08.07.2006, 09:22

Problem mit Header Datei

Hi,
ich hab bei meinem kleinen Projekt das erste mal selber (ohne alles ausm Buch abzuschreiben) versucht meine Klassen mit Hilfe von .hpp und .cpp dateien aus der main.cpp rauszubekommen. Ich hab alles nach bestem wissen und gewissen gemacht, trotzdem hagelt es Fehlermeldungen.

Karte.hpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Karte.hpp - Ccard Klasse

class Ccard 
{
public:
    // Memberfunktionen

    Ccard ();
    void setcard (int ATK, int DEF, int Pos);
    void changepos (int Pos);
    void showdata ();

private:
    // Membervariablen

    int m_ATK;
    int m_DEF;
    int m_Pos;
};


Karte.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
30
31
32
33
34
35
36
37
38
39
40
// Karte.cpp - Ccard Klasse

// Includes ########################################

#include <iostream>
#include "Karte.hpp"
using namespace std;

// Klassendefinitionen #############################


// Konstruktor

Ccard::Ccard ()
{
    cout << "Neue Karte erstellt" << endl;
}

Ccard::setcard (int ATK, int DEF, int Pos)
{
    m_ATK = ATK;
    m_DEF = DEF;
    m_Pos = Pos;

    cout << "Eine Karte wurde gesetzt" << endl;
}

Ccard::changepos (int Pos)
{
    m_Pos = Pos;
}

Ccard::showdata ()
{
    
    if (m_Pos == 0)
    {
        cout << "verdeckt" << endl;
    }
    else
    {
        cout << "ATK " << m_ATK << "/DEF " << m_Def << endl;
    }
}

Kann mir da bitte jemand helfen?

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

2

08.07.2006, 09:30

Zwei Dinge auf jeden Fall:

Include-Guard (such mal im Forum) im Header. Das ist in diesem kleinen Projekt noch nicht wichtig, aber später wirst du das immer brauchen. Also am besten gleich angewöhnen.

Deine Methoden sind alle deklariert als

C-/C++-Quelltext

1
void methode (...);

und so musst du sie auch implementieren. Also

C-/C++-Quelltext

1
void Klasse::methode (...)


Deklaration und Implementation müssen immer zusammenpassen, auch wenn void eigentlich "nichts" ist. ;)

Gruss,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

3

08.07.2006, 13:42

viele dank, jetzt gehts.

4

09.07.2006, 13:17

C-/C++-Quelltext

1
void ShowData();
Zwar wird das von eigentlich jedem Compiler automatisch gemacht... allerdings gehört in die geschweifte Klammer ein void... als:

C-/C++-Quelltext

1
void ShowData(void);
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

5

09.07.2006, 14:08

Zitat von »"Devil"«

...in die geschweifte Klammer...

Das sind die: {} :badgrin: ;)

6

09.07.2006, 18:15

sry :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige