Addressen



  • Gten Abend

    Wie müsste ich eine Funktion deklarieren, die die Addresse von a zurück gibt?

    class Ka
    {
    private:
       unsigned int a;
    
    public:
       [meine Funktion];
    };
    

    nfg susi



  • unsigned int* address_of_a()
    {
        return &a;
    }
    

    Bedenke aber, dass das keine gute Idee ist, da sowas die Datenkapselung aufhebt und die Implementierung anfällig für jede Menge Unfug macht.



  • groovemaster schrieb:

    unsigned int* address_of_a()
    {
        return &a;
    }
    

    Bedenke aber, dass das keine gute Idee ist, da sowas die Datenkapselung aufhebt und die Implementierung anfällig für jede Menge Unfug macht.

    yup, wie das bsp zeigt!

    class test
    {
     public:
      test(int j){a=j;}
      int GetA()const{return a;}
      int* GetPtrA(){return &a;}
     private:
     int a;
    };
    int main(int argc, char* argv[])
    {
     test t(10);
     cout<<t.GetA()<<endl;
     int* ptr = t.GetPtrA();
     *ptr = 15;
     cout<<t.GetA()<<endl;    //nun 15!!!!!
     getch();       return 0;
    }
    

Anmelden zum Antworten