Czym się różnią?
const int(){}
int () const {}
const int () const{}
Czym się różnią?
const int(){}
int () const {}
const int () const{}
Zapomniałeś jeszcze o int const (){}
const
z przodu dotyczy zwracanego typu, bez wskaźników lub referencji (czyli w twoich przykładach) jest totalnie bez sensu.
const
z tyłu oznacza że metoda nie zmienia składowych klasy.
const z przodu dotyczy zwracanego typu bez wskaźników (czyli w twoich przykładach) jest totalnie bez sensu.
Dlaczego jest bezsensu?
Zapomniałeś jeszcze o int const (){}
A to co to jest?:
Znacznik const
ogranicza zastosowanie zmiennej do rvalue
.
Natomiast zwracany typ o ile nie jest wskaźnikiem ani referencją i tak nie może być zastosowany jako lvalue
.
ok, a jeżeli zwracamy stałą referencję lub stały wskaźnik to nie możemy modyfikować wskaźnika/referencji czy też obiektu, które na nie wskazują? Dlaczego?
mielony napisał(a):
ok, a jeżeli zwracamy stałą referencję lub stały wskaźnik to nie możemy modyfikować wskaźnika/referencji czy też obiektu, które na nie wskazują? Dlaczego?
Jest jeszcze takie zagadnienie:
int *const iPtr = &n; // nie mozna zmienic zawartosci wskaznika
vs
const int *iPtr = &n; // nie mozna zmienic wskazywanej wartosci
i
const char * const myPtr = &char_A; // nie mozna zmienic wskaznika ani wartosci
http://www.codeguru.com/cpp/cpp/cpp_mfc/general/article.php/c6967/Constant-Pointers-and-Pointers-to-Constants.htm
http://www.learncpp.com/cpp-tutorial/610-pointers-and-const/