Kann eine Klassenmethode mit ihrer eigenen KLasse als Parameter gefüttert werden?



  • Hallo Community,

    dieses Posting hatte ich wohl offensichtlich nicht ganz politisch korrekt unter c++ versteckt, statt unter .net 🙂 Hoffe hier passt es jetzt besser.

    ** Kann eine Klassenmethode mit ihrer eigenen KLasse als Parameter gefüttert werden? **

    Ich habe zunächst eine Klasse definiert, die eine Methode beinhaltet, die ihre eigene Klasse als Parameter akzeptiert. Geht das (laut Compiler nicht, aber warum)?

    //in Headerdatei Klasse1.h:

    ref class Klasse1
    {
    public:
    int wert;
    int nocheinwert;
    int undnocheiner;

    public:
    void MachWas(Klasse1 ^Kaffee);
    }

    ..

    //in Klasse1.cpp:

    void MachWas(Klasse1 ^Kaffee)
    {
    Kaffee->wert++;
    }

    ..

    main()
    {
    //Ein Array aus der Klasse basteln:
    array<Klasse1^> ^Kaffee = gcnew (Klasse1^)(10);

    //Dann wird zB Kaffee[0] instanziiert:
    Kaffee[0] = gcnew (Klasse1^);

    //und an die eigene Methode als Parameter übergeben werden:
    Kaffee[0]->MachWas(Kaffee[0]);

    ..}

    Und schon motzt der Compiler, dass die aufegrufene Methode nicht statisch sei. Wenn ich sie als statisch deklariere (also in der Headerdatei schreibe: static void MachWas(..) ), dann läuft die Kiste ja auch. Aber wieso muss die Methode in diesem Fall statisch sein? Wo liegt mein (Denk-)Fehler?

    Danke für eure Hilfe!




Anmelden zum Antworten