różnica pomiędzy constami

0

Czym się różnią?

const int(){}
int () const {}
const int () const{}
2

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.

0

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?:

0

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.

0

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?

1
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/

1 użytkowników online, w tym zalogowanych: 0, gości: 1