kennt klasse net



  • ich habe folgendes prob !
    bitte helft mir weiter unter borland war das immer voll ok .. in VC macht der immer nen fehler

    class CGridSquare; 
    
    //--------------------------------------------------------------// 
    //    klasse: CGrid 
    //    beschreibung:    klasse des Prospektoren-Plans 
    //--------------------------------------------------------------// 
    class CGrid 
    { 
        CGridSquare m_gsXCoord[80];  
        CGridSquare m_gsYCoord[24];  
    
    public: 
        CGrid(); 
        int CreateGrid(); 
        int LoadGrid(); 
    };
    

    fehlermeldung

    d:\Temp\c++ work area\grab\grid.h(29): error C2079: 'CGrid::m_gsXCoord' verwendet undefiniertes class 'CGridSquare'

    Danke schon mal für die hilfe



  • Definier sie doch einfach ;).



  • hab ich .. hier ist noch mla meine komplette header datei:

    //-------------------------------------------------------------//
    //	name: grid.h
    //	erstellungsdatum: 07.11.2003
    //	letzte änderung: 07.11.2003
    //	version: undefined
    //
    //	beschreibung: header datei der klasse CGrid
    //--------------------------------------------------------------//
    
    #include <ios>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    const NOTHING = 0;
    const STONE = 1;
    const DIAMOND = 2;
    
    class CGridSquare;
    
    //--------------------------------------------------------------//
    //	klasse: CGrid
    //	beschreibung:	klasse des Prospektoren-Plans
    //--------------------------------------------------------------//
    class CGrid
    {
    	CGridSquare m_gsXCoord[80]; 
    	CGridSquare m_gsYCoord[24]; 
    
    public:
    	CGrid();
    	int CreateGrid();
    	int LoadGrid();
    };
    
    //--------------------------------------------------------------//
    //	klasse: CGridSquare
    //	beschreibung:	klasse eines Planquadrates
    //--------------------------------------------------------------//
    class CGridSquare
    {
    	int m_iType;
    	//POINT m_pointExit;
    
    public:
    	CGridSquare();
    };
    


  • Ich meinte direkt darunter definieren?



  • hmm wenn ich das direkt über der anderen klasse definiere geht das..
    danke !
    aber warum geht das mit dem deklarieren darüber net ??
    bei borland war das nie das prob ..



  • Das geht im Borland echt? *staun* Illegal ist es auf jeden Fall. Vorwärtsdeklarationen von Klassen erlauben nur, Zeiger und Referenzen auf sie zu bilden. An der Stelle, an der CGrid ohne die Definition von CGridSquare definiert ist, kann der Compiler ja z.B. gar nicht wissen, wie groß eine CGrid-Instanz ist etc.



  • tjoa du hast gleube ich meinen fehler erkannt 🙂
    in borland hab ich zumindest acuh immer nur referenzen auf fi klasse erstellt wenn sie nicht vorher definiert war!


Anmelden zum Antworten