Przeciążam dwukrotnie operatora przy użyciu tej samej listy parametrów. ale z innym Zwraca typ:C++ operator przeciążenia dwa razy, jeden powrotny non-const reference i drugi const reference, jakie jest preferencje?
T& operator()(par_list){blablabla}
const T& operator()(par_list){blablabla}
Więc kiedy dzwonię do operatora(), która byłaby funkcja o nazwie na podstawie tego co preferencji lub sytuacji? Wiem, że jeśli wywołuję() pod funkcją const, musi to być stała T &.
Ciekaw jestem, jak C++ radzi sobie z taką sytuacją i jak działa domyślna preferencja.
Dzięki
Termin jest przeciążenie * *, i nie. – chris
C++ Dezaktywuje przeciążenie według typu zwracanego. Można przejść do tego, co "może/powinien" zrobić, ale to nie ma znaczenia. Jedna z nich polega na tym, aby metoda stała, gdy typ powrotu jest stały, ponieważ może być przeciążony. Moja pamięć jest preferowana przez metodę const, a niestanowiącą nazwy const, nie byłaby legalna. – Joe