Array in klassen



  • wenn es eh const ist, dann mach doch noch ein static davor, normale static-variablen werden dann außerhalb der Klasse initialisiert (int Class::test = 3; )
    ich weis jetzt aber nicht ob das mit const genauso geht, habe ich noch nicht probiert



  • Hi ok

    Sagen wirs so.
    Ich möchte in einer classe einen konstanten array deklarieren der aber nur in dieser classe sichtbar ist private const.

    Es muss doch möglich sein einen const aray in einer klasse zu machen, in java gehts warum in c++ nicht???

    Kann mir keine zeigen wie man das in c++ löst!

    Thx

    Sascha



  • es wurde dir doch schon gesagt wie... und das nur ein post über deinem letzten beitrag...



  • class StaticArray
    {
    	static int aArray[];
    };
    
    int StaticArray::aArray[] = {1,2,3,4,5};
    


  • #include <iostream>
    using namespace std;

    class myClass
    {
    private:
    static int billy[];

    };

    int myClass::billy[] = {1,2,3};

    int main()
    {
    return 0;
    }

    so hat er mit zumindest grade im VC6 kompiliert ohne Fehler oder Warnungen ... hoffe das hilft 🙂



  • class myClass
    {
    private:
      static const int billy [];
    };
    
    // diese Zeile vorzugsweise in der .cpp
    const int myClass::billy[] = {16, 2, 77, 40, 12071};
    


  • Mist hab das const vergessen hinzuschreiben^^



  • Hi

    Danke allen hab es glaub ich geschnallt...

    Ich dachte nur es geht auch ohne static weil dann ist Sie ja für alle offen und ich wollte das ganze private halten 😞 oder ist static in c nicht gleich static in Java..

    Ps: shapeless Es können nicht alle so gut sein und es gleich aus einem text heraus schnallen, sie brauchen halt ein beispiel.
    In anderen sprachen geht es so ohne probleme...



  • ach ja wegen finix's Hinweis, das möglichst in die cpp-Datei zu schreiben: bei mir geht es sogar ausschließlich nur, wenn die Initialisierung in der cpp steht, in der Headerdatei bekomm ich da Compile-fehler



  • saschaappel schrieb:

    Hi

    Danke allen hab es glaub ich geschnallt...

    Ich dachte nur es geht auch ohne static weil dann ist Sie ja für alle offen und ich wollte das ganze private halten 😞 oder ist static in c nicht gleich static in Java..

    Ps: shapeless Es können nicht alle so gut sein und es gleich aus einem text heraus schnallen, sie brauchen halt ein beispiel.
    In anderen sprachen geht es so ohne probleme...

    Das static bewirkt nur (als Element), dass alle Objekte deiner Klasse auf dieselbe Variable zugreifen.
    Bei einer const Variable macht alles andere doch auch gar keinen Sinn. 😉
    Vieleicht optimiert der Compiler das ganze aber sowieso weg...



  • Pellaeon schrieb:

    ach ja wegen finix's Hinweis, das möglichst in die cpp-Datei zu schreiben: bei mir geht es sogar ausschließlich nur, wenn die Initialisierung in der cpp steht, in der Headerdatei bekomm ich da Compile-fehler

    Das "vorzugsweise" war auch eher metaphorisch zu verstehen 😉
    Allerdings sollte eigentlich der Linker meckern, nicht der Compiler!?


Anmelden zum Antworten