Problem mit Klasse



  • Hi!
    Warum funktioniert folgender Code nicht?:

    typedef void           bo_void;
    typedef bool           bo_bool;
    typedef unsigned char  bo_byte;
    typedef unsigned short bo_short;
    typedef signed int     bo_integer;
    typedef float          bo_float;
    typedef char*          bo_string;
    
    #define BO_FALSE 0x0
    #define BO_TRUE  0x1
    
    class BlitzON
    {
        public:
            bo_bool BlitzON(bo_void);     
    };
    
    bo_bool BlitzON::BlitzON(bo_void)
    {
        return BO_TRUE;
    }
    

    Arbeite mit DevC++. Debugger gibt mir folgendes aus:

    15 C:\Eigene Dateien\BlitzON\Include\boMain.cpp
    return type specification for
    20 C:\Eigene Dateien\BlitzON\Include\boMain.cpp
    return type specification for
    /Eigene Dateien/BlitzON/Include/boMain.cpp C:\Eigene Dateien\BlitzON\Include\C
    In constructor
    21 C:\Eigene Dateien\BlitzON\Include\boMain.cpp
    returning a value from a

    mfg olli



  • Nabend,

    Liegt es eventuell daran, dass du BlitzOn einmal als Klassenname: BlitzOn schreibst, vor dem :: aber BlitzON notierst.



  • bo_bool BlitzOn::BlitzON(bo_void) 
    { 
        return BO_TRUE; 
    }
    


  • Hi!
    Ja habe ich auch gerade herausgefunden, drotzdem Danke!
    Habe jetzt den Code nochmal oben editiert, jetzt gibt ne neue Fehlermeldung 😞
    mfg olli



  • eine Klassenmethode darf nicht den gleichen Namen wie die Klasse haben, nur der Ctor und Dtor. Und wie wärs wenn du auch mein Posting lesen würdest?



  • Hi!
    ja, aber BlitzON sollte der Construktor sein, also den gleichen Namen besitzen,
    wie die Klasse selber.
    mfg olli



  • aber keinen Rückgabetyp



  • Ohh vielen Dank! Man bin ich blöd *kopfglatsch*



  • Hi,
    Bist du Vertex alias Latex aus dem
    davidmoore forum?
    Lustig wieviele Darkbasic Leute man hier so wiedertrifft.

    cu max



  • Master_Max: Ja Freax zwar aus dem BlitzForum aber ist ja egal 🙂

    So da habe ich gleich noch ein paar andere Fragen (man, wenn man sich nur mit
    der scheiß Theorie beschäftigt, bleibt anscheinend nix hängen)

    Ich wollte jetzt folgendes machen:
    2 Methoden Namens CreateBank und FreeBank mit integrieren.

    typedef void           bo_void;
    typedef bool           bo_bool;
    typedef unsigned char  bo_byte;
    typedef unsigned short bo_short;
    typedef signed int     bo_integer;
    typedef float          bo_float;
    typedef char*          bo_string;
    
    #define BO_FALSE 0x0
    #define BO_TRUE  0x1
    
    #include <stdlib.h>
    
    struct boBANK
    {
        bo_integer Size;
        bo_void    *Address;
    };
    
    class BlitzON
    {
        public:
            BlitzON();
            void Free();
    
            boBANK *CreateBank(bo_integer Size);
            bo_void FreeBank(boBANK *Bank);
    };
    
    BlitzON::BlitzON()
    {
    }
    
    void Free()
    {
    }
    
    boBANK* BlitzON::CreateBank(bo_integer Size)
    {
        boBANK           *boBank;
        boBank          = new(boBANK);
        boBank->Size    = Size;
        boBank->Address = malloc(Size);
        return boBank;
    }
    
    bo_void BlitzON::FreeBank(boBANK *Bank)
    {
        free(Bank->Address);
        delete(Bank);
    }
    

    Wer hätte es gedacht, es geht wieder nicht. Gibt delete eigentlich true oder
    false zurück? Kann mir nochmal jemand bitte helfen?
    Denn auf diese Art und Weise soll die komplette Klasse basieren.
    mfg olli
    Edit: So geht es jetzt, danke an ST für seine Hilfe!


Anmelden zum Antworten