Du bist nicht angemeldet.

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 550

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

Beiträge: 1 927

Wohnort: Hessen

  • 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 von »LetsGo«

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veralteten strukturieren 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 667

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

Gelöschter Benutzer

unregistriert

9

16.12.2013, 18:35

danke

Fireball

Alter Hase

Beiträge: 421

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