Aktuelle Zeit: 22.12.2024, 19:50

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: include parallel
BeitragVerfasst: 09.01.2008, 21:07 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
Hi,
Kann man irgentwie gleichzeitig includen?
Meine Player Klasse braucht die KI Klasse, diese wiederum die Funktion Klasse und sie braucht die Player Klasse.... Das is voll nerfig....

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 09.01.2008, 21:47 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Du hast doch dann nur Pointer. Das geht dann so:
Klasse 1:
Code:
[...]
class Class2;

class Class1
{
public:
Class2 *class2;
}
[...]


Klasse 2:
Code:
[...]
class Class1;

class Class2
{
public:
Class1 *class1;
}
[...]


Die eigentlichen Header werden dann nur in der .cpp inkludiert.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 09.01.2008, 22:50 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
geht net weil dann er dann den rest nicht zuvor includiert und sofort ansagt das die klasse net existiert

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 09.01.2008, 23:56 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
wie wäre es vorher die zwei klassen zu instanzieren und dann über eine init funktion aneinander übergeben.

halb pseudo:
Code:
C_Class1 Class1;
C_Class2 Class2;
Class1.init(&Class2);
Class2.init(&Class1);


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 10.01.2008, 06:45 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
Das Problem ist nicht wie ich die Klasse bei der anderen einbinde... sondern eher, dass sie zu diesem Zeitpunkt, wo ich die andere Klasse kompiliere noch garnicht existiert Pseudo bsp:

Code:
Global.h:

includet KI.h
includet Player.h
includet Funktion.h


Code:
KI.h
Ein Zeiger auf *Funktion <<< Zu diesen Zeitpunkt existiert aber noch keine Funktionsklasse


Code:
Player.h
Ein Zeiger auf *KI


Code:
Funktion.h
Ein Zeiger auf *Player


Erzeugt ein Fehler von ki.h:

c:\dokumente und einstellungen\***\eigene dateien\visual studio 2005\projects\naruto pong\ki.h(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '*'
Code:
   cFunktion* Funktion;   //Zeiger auf die Funktionsklasse




Hoffe ist jetzt verständlicher das Problem...

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 10.01.2008, 12:55 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Anstatt sie vorher zu includieren, setzt du einfach einen Prototyp dafür ein, in der Form "class Klassenname;". Genau das, was ich geschrieben habe, und genau das, was du brauchst :p

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 10.01.2008, 20:47 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
*peinlich* in mein 21 visual c++ buch hab ich nur bis zum 3. tag gelesen hab kein Plan von Prototypen :S
kannst ma kurz erklären

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 10.01.2008, 22:27 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
weiterlesen ^^

Ein Prototyp ist halt das was der Name sagt: ein prototyp.

Code:

// a.h

#include "b.h"
class A
{
B* b;
};

// b.h
#include "a.h"
class B
{
A* a;
};


endet mit mehrfachdeklaration von A und B (wie du es schon gemerkt hast ^^)

durch "class A;" sagst du dem compiler, dass es eine Klasse gibt, die A heißt. Das reicht dem compiler um einen Zeiger auf diesen Typen zu deklarieren. Wenn du jetzt allerdings diesen Zeiger benutzen willst, braucht der compiler die genauen angaben über die klasse, die im header stehen.
Allerdings braucht er diese erst in der cpp datei und somit kannst du beide Datein includen und alles funktioniert wunderbar.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: include parallel
BeitragVerfasst: 10.01.2008, 22:45 
Offline
Benutzeravatar

Registriert: 24.07.2007, 23:11
Beiträge: 283
so hatte ich's egtl. mhh... naja, habs jetzt ganz anders gemacht anstatt die KI, Player abhnägig zu machen hab ich sie Global im ganzen Projekt den Funktionen zu geordnet, hab zwar andere Probs, aber die sind nur "L(ogisch) P(lan) P(robleme)" ;)

_________________
Be Fluffy!
kemomi.de


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de