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

Viktor

Alter Hase

Beiträge: 533

Wohnort: Ludwigshafen

Beruf: Student

  • Private Nachricht senden

21

13.01.2009, 18:03

Es heist auch:

C-/C++-Quelltext

1
2
3
4
void CPlayerSpielername (std::string Spielername) 
{ 
     m_Spielername = Spielername;
}


bzw. Geschmackssache:

C-/C++-Quelltext

1
2
3
4
void vSet_Spielername (std::string strSpielername) 
{ 
     m_strSpielername = strSpielername;
}


D.h. du weist der privaten Membervariablen (m_Spielername) den Funktionsparameter (Spielername) zu.

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

22

13.01.2009, 18:08

kann nicht gehn.
Die methode muss in die Klasse(!) also sowas wie:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
class CPlayer
{
   ...
   ...
public:
   ...
   void SetSpielername(std:string spielername)
   {
      m_Spielername = spielername;}
   }
}


und in der Main dann:

C-/C++-Quelltext

1
2
3
4
...
CPlayer Palyer;
Player.SetSpielername("Max Mustermann");
...
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

23

13.01.2009, 18:08

der compiler sagt dir eh schon alles:

ich hebe mal in fett hervor, was für dich wichtig ist:

Zitat


1>c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3) : error C2011: 'CPlayer': 'class' Typneudefinition
1> c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3): Siehe Deklaration von 'CPlayer'
1>c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\hauptmenü.cpp(25) : error C2079: 'Spieler' verwendet undefiniertes class 'CPlayer'
1>Spielen.cpp
1>c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3) : error C2011: 'CPlayer': 'class' Typneudefinition
1> c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3): Siehe Deklaration von 'CPlayer'


edit:
is diese player klasse in einer header datei?

wenn ja: du musst dann in jeder source (cpp) datei, wo du zugriff auf diese klassendefinition haben willst, den header inkludieren (also deinen header, wo du die klasse definiert hast), sonst weiß der compiler in dieser sourcedatei natürlich nicht, dass du eine solche klasse bereits definiert hast.

edit2:
und wenn deine spielen funktion einen pointer der klasse CPlayer erwartet, wäre der aufruf wohl ungefähr wie folgt

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include "CPlayer.h"

void main()
{
  // Variables

  CPlayer* p = new CPlayer;

  Spielen( p );

  delete p;
  p = null;
}



bzw. bei einer referenz (was ich in diesem fall persönlich als schlechter einstufe):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "CPlayer.h"

void main()
{
  // Variables

  CPlayer p = CPlayer();

  Spielen( &p ); // hier bin ich mir nicht sicher, musst eventuell noch nachschauen, wie das übergeben als referenz ging ;)

}

Viktor

Alter Hase

Beiträge: 533

Wohnort: Ludwigshafen

Beruf: Student

  • Private Nachricht senden

24

13.01.2009, 18:13

Zitat von »"Dofter"«

kann nicht gehn.
Die methode muss in die Klasse(!) also sowas wie:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
class CPlayer
{
   ...
   ...
public:
   ...
   void SetSpielername(std:string spielername)
   {
      m_Spielername = spielername;}
   }
}


und in der Main dann:

C-/C++-Quelltext

1
2
3
4
...
CPlayer Palyer;
Player.SetSpielername("Max Mustermann");
...


Das hatte ich mal vorausgesetzt. Wenns in ner externen cpp-Datei ist geht nat. auch:

C-/C++-Quelltext

1
2
3
4
void CPlayer::CPlayerSpielername (std::string Spielername) 
{ 
     m_Spielername = Spielername; 
} 

Anonymous

unregistriert

25

13.01.2009, 18:16

Zitat von »"Draculark"«

der compiler sagt dir eh schon alles:

ich hebe mal in fett hervor, was für dich wichtig ist:

Zitat


1>c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3) : error C2011: 'CPlayer': 'class' Typneudefinition
1> c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3): Siehe Deklaration von 'CPlayer'
1>c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\hauptmenü.cpp(25) : error C2079: 'Spieler' verwendet undefiniertes class 'CPlayer'
1>Spielen.cpp
1>c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3) : error C2011: 'CPlayer': 'class' Typneudefinition
1> c:\users\luca\documents\visual studio 2008\projects\spielekiste\spielekiste\cplayer.hpp(3): Siehe Deklaration von 'CPlayer'


edit:
is diese player klasse in einer header datei?

wenn ja: du musst dann in jeder source (cpp) datei, wo du zugriff auf diese klassendefinition haben willst, den header inkludieren (also deinen header, wo du die klasse definiert hast), sonst weiß der compiler in dieser sourcedatei natürlich nicht, dass du eine solche klasse bereits definiert hast.

edit2:
und wenn deine spielen funktion einen pointer der klasse CPlayer erwartet, wäre der aufruf wohl ungefähr wie folgt

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
void main()
{
  // Variables

  CPlayer* p = new CPlayer;

  Spielen( p );

  delete p;
  p = null;
}


Ja schön und gut, nun ist jedoch das problem, dass Hauptmenü.cpp zur keiner Headerdatei gehört.

Anonymous

unregistriert

26

13.01.2009, 18:51

Threaderledigt ich machs so:

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
#include <iostream>
#include <windows.h>
#include <string>
#include <cstdio>
#include <time.h>
#include <fstream>
#include <assert.h>
#include "CPlayer.hpp"

using namespace std;
#pragma comment (lib, "winmm.lib")

// Globale Variablen

//

extern string SpielerSpielername;
extern unsigned int SpielerLebensenergie;
extern unsigned short SpielerVersuche;
extern unsigned int SpielerSpielGeld;
extern unsigned int SpielerPunkte;

int main ()
{
    // Zufallsgenerator initialisieren

    srand (timeGetTime ());

    // Lokale Variablen

    //

    unsigned short Auswahl = 0;
    string SpielerSpielername;
    unsigned int SpielerLebensenergie;
    unsigned short SpielerVersuche;
    unsigned int SpielerSpielGeld;
    unsigned int SpielerPunkte;

    // Klassen

    //

    CPlayer Spieler;
    SpielerSpielername = Spieler.Wert_Spielername ();
    SpielerLebensenergie = Spieler.Wert_Lebensenergie ();
    SpielerVersuche = Spieler.Wert_Versuche ();
    SpielerSpielGeld = Spieler.Wert_SpielGeld ();
    SpielerPunkte = Spieler.Wert_Punkte ();

    return 0;
}

27

13.01.2009, 18:53

achso, na wenn die hauptmenü.cpp zu keiner headerdatei gehört, dann ist ja alles klar.


ernsthaft:
schilder mal das problem genauer!
was hast du getan? wie ist der momentane stand? in welcher zeile kommt dieser error vor und poste mal diese datei (sofern sie nicht zu groß ist), damit man sich ein bild davon machen kann.
so kann dir einfach niemand helfen.

das ist wie wenn du schreiben würdest

Quellcode

1
int i = 3;

meine datei hat 50 fehler?!?!?!?! was soll ich tun?!?!?!?


so kann man dir einfach nicht helfen.


edit:
verstehe nur ich nicht, was das mit dem anfangpost des threads zu tun haben soll?

edit2:
ah sry, sehe du bist erst 12 jahre alt.
dann nimm das nicht so persönlich, was ich geschrieben habe, aber lerne wirklich an deiner problemformulierung.
stelle dir einfach selbst die frage, bevor du einen thread erstellst, bzw. postest, ob das, was du geschrieben hast, für dich einen sinn ergibt und ob andere leute die möglichkeit haben dahinterzukommen, was du willst.
würde einiges hier erleichtern :)

Anonymous

unregistriert

28

13.01.2009, 19:08

Schon gut, ich habe den Fehler herausgefunden.

in der Headerdatei musste es so aussehen:

C-/C++-Quelltext

1
2
#include <iostream>
int Spielen (class CPlayer &Spieler);


Habe das class nicht mitgeschrieben.

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

29

13.01.2009, 19:58

mein stadnt der dinge ist, dass das class aber nicht extra angegeben werden muss... hmm... aber ich kann mich auch täuschen.
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

30

13.01.2009, 20:03

Zitat von »"Dofter"«

mein stadnt der dinge ist, dass das class aber nicht extra angegeben werden muss... hmm... aber ich kann mich auch täuschen.

Musst du auch nicht. Das ist Blödsinn. ;)

Werbeanzeige