вЧто использование сопзИте здесь
int salary() const { return mySalary; }
насколько я понимаю Const для этого указателя, но я не уверен. Может ли кто-нибудь сказать мне, что здесь используется const?
вЧто использование сопзИте здесь
int salary() const { return mySalary; }
насколько я понимаю Const для этого указателя, но я не уверен. Может ли кто-нибудь сказать мне, что здесь используется const?
Похоже, что у вас есть правильная идея, в C++ const по методу объекта означает, что метод не может изменить объект.
Например, это не будет позволено:
class Animal {
int _state = 0;
void changeState() const {
_state = 1;
}
}
Этот синтаксис действителен только для C++ 0x – ergosys
Какой синтаксис? Я не набирал ни одного C++ в то время, поэтому, возможно, у меня что-то не так, никаких гарантий, которые он компилирует, но, не обращая внимания на любые ошибки, я уверен, что вы получите общую идею, а общая идея является частью обычного C++. –
Я мог ошибаться, я использовал MSVC++ версию 6 (годы назад), возможно, это не соответствовало спецификации, делает ли Microsoft когда-либо подобное? ;) –
Это const
метод. Это означает, что он не будет изменять переменные-члены класса и не вызовет методы не const
. Таким образом:
const foo bar;
bar.m();
является законным, если m
является const
метод, но в противном случае не было бы.
Когда функция отмечена const
, ее можно вызывать на указателе/ссылке const этого класса. По сути это говорит Эта функция не изменяет состояние класса.
Это означает, что функция может быть вызвана для объекта const; и внутри этой функции-члена указатель this
является константой.
Это просто гарантирует, что вызов зарплаты() не изменит состояние объекта. IE, его можно вызвать с помощью указателя или ссылки const.
Это функция-член const. Это контракт, что функция не изменяет состояние экземпляра.
болеездесь: http://www.fredosaurus.com/notes-cpp/oop-memberfuncs/constmemberfuncs.html
Константных после функции класса, значит, эта функция не будет изменять любые объекты члена этого класса. Только одно исключение, когда переменная-член отмечена Mutable.
Вы совершенно правы, это влияет на это *. –