Const Methode



  • Hallo,

    Für was brauch ich bei dieser klasse auch noch eine const Methode die wird ja eh nie aufgerufen?

    class Klasse {
        int* m_Pointer;
    public:
        Klasse() {
            m_Pointer = new int[10];
            for(int i=0; i<10;i++)
                m_Pointer[i] = i;
        }
    
        const int& operator[](int i) const;
        int& operator[](int i);
    
    };
    
    const int& Klasse::operator[](int i) const {
             cout << "in const []" << endl;
            return m_Pointer[i];
    }
    
    int& Klasse::operator [](int i)  {
            cout << "in [] normal" << endl;
            return m_Pointer[i];
    }
    


  • sie würde nur aufgerufen werden wenn du operator[] aus einer const Methode aufrufst. oder über const_cast wahrscheinlich auch



  • Wieso sollte die nie aufgerufen werden, wenn das Objekt const ist, wird auch die const-Methode aufgerufen, und bei dieser kann dem Member nichts zugewiesen werden.


Anmelden zum Antworten