Seite 1 von 1

const Methoden-Frage

Verfasst: 9. November 2012 09:45
von redbulls
Hallo,
ich habe eine prinzipielle Frage zu const Methode. Wenn eine Methode als const deklariert ist, heißt das ja das innerhalb der Methode keine Members verändert werden.
Wenn ich in einer als const deklarierten Methode eine nicht const methode der Klasse aufrufen möchte schreit der Compiler. Ist es ein problem wenn ich das Problem umgehe, indem ich einfach die aufrufende Methode auch als const deklariere, auch wenn sie vl eine member indirekt verändert?

danke

Re: const Methoden-Frage

Verfasst: 9. November 2012 10:08
von Christian81
Nein das geht nicht - da meckert der Compiler dann auch - in einer const-Methode kann man keine Member verändern - und würde ja auch dem Sinn einer const-Methode widersprechen...

Re: const Methoden-Frage

Verfasst: 9. November 2012 10:34
von redbulls
Und wenn ich eine Member in einer const Methode doch verändern möchte, muss ich sie als mutable deklarieren.
Oder?

Re: const Methoden-Frage

Verfasst: 9. November 2012 13:20
von Christian81
Ja, aber warum solltest Du das wollen?

Re: const Methoden-Frage

Verfasst: 9. November 2012 15:21
von redbulls
Ich arbeite mit Qt ; )
Zum Beispiel wenn man ein QAbstractItemModel ableitet und ein sehr komplexes CustomModel entwickelt. Dann kann es sein, dass man in irgendeiner überladenen const Methode, die man reimplementiert, noch etwas anderes erledigen möchte.
In meinem Fall zum Beispiel bei einer der drag and drop Methoden.

Re: const Methoden-Frage

Verfasst: 9. November 2012 15:36
von Christian81
Glaub ich zwar eher weniger aber wenn Du meinst... es gibt nur sehr seltene Fälle die soetwas wirklich benötigen