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

09.05.2009, 10:14

C++ Klasse übergeben

moin,
meine frage ist ob man klassen als parameter an andere funktionen übergeben kann oder wie man es wenigstens so machen kann das ich die funktionen er klasse in der funktion benutzen kann die klasse aber nciht gloal ist

mfg nekturion

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

2

09.05.2009, 10:21

C-/C++-Quelltext

1
2
3
4
class a;
void function(const a* _parameter);
void function(const a& _parameter);
void function(a _parameter);

drei beispiele ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

09.05.2009, 10:22

Du kannst eine Instanz der Klasse übergenen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdio>

class foo
{
public:
  void bar() const { printf( "foo::bar\n" ); }
};

void somefun( const foo& inst )
{
  inst.bar();
}

int main()
{
    foo x;
    somefun( x );
}

4

09.05.2009, 10:25

ahh coll danke euch

Gelöschter Benutzer

unregistriert

5

16.12.2013, 17:15

Ich greife das Thema seit 2009 mal nochmal kurz auf. Es geht um das Buch "C++ für Spieleprogrammierer" (falscher Bereich, aber ich dachte mir die Überschrift passt und der Bereich ist an sich sowieso der gleiche). Im letzten Beispiel (Listing 12), programmiert man ein Spiel mit der .exe. Alles schön und gut, funktioniert auch soweit, allerdings habe ich das ganze jetzt weiterentwickelt (schon die letzten Wochen). Es geht um folgendes: ich habe in meinem kleinen RPG, mit etwas Minecraft-Prinzip, eine Cheat-Konsole eingebaut. Nun möchte ich der Klassenfunktion von CCheaten die Instanz des Spieles übergeben. Wenn ich in der Hauptschleife so schreibe:

C-/C++-Quelltext

1
m_bCheatmenü = g_pCheaten->Render(m_pPlayer);

und in der Header-Datei der Klasse "CCheaten" so:

C-/C++-Quelltext

1
bool Render(const CPlayer&inst);

und in der CCP:

C-/C++-Quelltext

1
2
3
4
bool CCheaten::Render(const CPlayer& inst)
{
 . . .  
}

kommt es zu Fehlern. Wenn mehr Informationen gebraucht werden, werde ich die gerne schreiben, wobei ich glaube das es sich wieder um einen Anfängerfehler meinerseits handelt ;)

FSA

Community-Fossil

  • Private Nachricht senden

6

16.12.2013, 17:22

C-/C++-Quelltext

1
2
3
4
5
6
bool Render(CPlayer* inst);

bool CCheaten::Render(CPlayer* inst)
{
 . . .  
}

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Gelöschter Benutzer

unregistriert

7

16.12.2013, 17:32

wie würde ich schreiben, wenn ich in der Funktion, welche den Zeiger erhalten hat, nochmals eine Funktion derselben Klasse aufrufe, und ich den Zeiger weitergeben möchte?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

8

16.12.2013, 18:17

Genauso.

Gelöschter Benutzer

unregistriert

9

16.12.2013, 18:35

danke

Fireball

Alter Hase

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

10

17.12.2013, 10:29

Mal ne Style Frage. Übergebt ihr lieber per & oder per * ?

Hab ich mich schon immer gefragt was da besser sein soll. Von der Geschwindigkeit her sollte es ja gleich sein oder?

Werbeanzeige