totycro
16-07-2007, 12:17
Die Frage ist eher allgemein:
Ich habe eine Klasse, die im Prinzip ein Interface zur Kommunikation mit einem anderen Programm darstellt.
Da gibt es natürlich get-Methoden, die eigentlich nur Daten abfragen, also const sein sollten. Diese Methoden müssen aber auch überprüfen, ob die Verbindung mit dem Programm funktioniert, und sollte das nicht der Fall sein, neu verbinden.
Das Verbindungshandle ist ein Member der Klasse, und weil es beim Verbinden verändert wird, kann die Methode verbinden() nicht const sein. Folglich darf die get-Methode nicht const sein, weil sie sonst die nicht-const Methode verbinden() nicht aufrufen dürfte.
Ich habe das jetzt so gelöst, dass verbinden() auch const ist. Damit das kompiliert, habe ich das Verbindungshandle einfach als mutable deklariert.
Gibt es da nicht eine bessere Möglichkeit?
Ich habe eine Klasse, die im Prinzip ein Interface zur Kommunikation mit einem anderen Programm darstellt.
Da gibt es natürlich get-Methoden, die eigentlich nur Daten abfragen, also const sein sollten. Diese Methoden müssen aber auch überprüfen, ob die Verbindung mit dem Programm funktioniert, und sollte das nicht der Fall sein, neu verbinden.
Das Verbindungshandle ist ein Member der Klasse, und weil es beim Verbinden verändert wird, kann die Methode verbinden() nicht const sein. Folglich darf die get-Methode nicht const sein, weil sie sonst die nicht-const Methode verbinden() nicht aufrufen dürfte.
Ich habe das jetzt so gelöst, dass verbinden() auch const ist. Damit das kompiliert, habe ich das Verbindungshandle einfach als mutable deklariert.
Gibt es da nicht eine bessere Möglichkeit?