Какая польза от const здесь - PullRequest
       13

Какая польза от const здесь

2 голосов
/ 08 января 2010

в

int salary() const { return mySalary; }

Насколько я понимаю, const для этого указателя, но я не уверен. Может кто-нибудь сказать мне, что здесь используется const?

Ответы [ 7 ]

7 голосов
/ 08 января 2010

Звучит так, как будто вы правильно поняли, что в C ++ const для метода объекта означает, что метод не может изменить объект.

Например, это не будет разрешено:

class Animal {
   int _state = 0;

   void changeState() const { 
     _state = 1;
   }
}
5 голосов
/ 08 января 2010

Когда функция помечена как const, ее можно вызывать с помощью константного указателя / ссылки этого класса. По сути, он говорит Эта функция не изменяет состояние класса .

0 голосов
/ 27 августа 2012

Константа после функции класса означает, что эта функция не будет изменять объекты-члены этого класса. Единственное исключение, когда переменная-член помечена Mutable.

0 голосов
/ 08 января 2010

Это постоянная функция-член. Согласно договору функция не изменяет состояние экземпляра.

больше здесь: http://www.fredosaurus.com/notes-cpp/oop-memberfuncs/constmemberfuncs.html

0 голосов
/ 08 января 2010

Это просто гарантирует, что вызов salary () не изменит состояние объекта. То есть он может вызываться с помощью константного указателя или ссылки.

0 голосов
/ 08 января 2010

Это означает, что функция может быть вызвана для объекта const; и внутри этой функции-члена указатель this является постоянным.

0 голосов
/ 08 января 2010

Это const метод. Это означает, что он не будет изменять переменные-члены класса и не будет вызывать не const методы. Таким образом:

const foo bar;
bar.m();

допустимо, если m - это метод const, но в противном случае не будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...