const sinnvoll?
-
Hi, ist hier ein const bei dem Rückgabewert sinnvoll?
[b]const[/b] TValue& operator[](const TKey& key) const; TValue& operator[](const TKey& key);
-
Student83 schrieb:
Hi, ist hier ein const bei dem Rückgabewert sinnvoll?
[b]const[/b] TValue& operator[](const TKey& key) const; TValue& operator[](const TKey& key);Ja. Eine Funktion mit Const-Qualifier sollte, wenn Sie Referenzen oder Zeiger (Edit: auf Member o.ä.) zurückgibt, diese auch als Const markieren...
-
Warum hat die std map dann keinen solchen operator[]?
http://www.cplusplus.com/reference/stl/map/operator%5B%5D/
-
Student83 schrieb:
Warum hat die std map dann keinen solchen operator[]?
http://www.cplusplus.com/reference/stl/map/operator%5B%5D/Weil das Konzept der
mapdarin besteht, im entsprechenden Fall den übergebenen Index Anzulegen, (Edit:) was eine Veränderung des internen Baumes (oder wie auch immer die map das speichert) zur Folge hat. Beistd::vectoroderstd::dequeusw. gibt es so einen überladenen Operator, (Edit:) da hier nur eine Konstante Referenz zum jeweiligen Objekt zurückgegeben werden muss (was selbstverständlich keine Auswirkung auf das interne Array oder sonst irgendetwas hat).
-
Ah ok, das macht Sinn. Danke für die Erklärung.