Внутри const
метода объект (*this
) и, следовательно, все его члены const
.Подумайте об этом, если бы это было не так, то объект const
ничего бы не значил.
Таким образом, m_work
- это const
внутри get_work
, и вы можете вызывать только const
методы для него.
Сделать work
также методом const
.Нет очевидной причины делать это не const
, и по умолчанию вы должны использовать методы const
.Только когда вам нужно изменить объект, сделайте его не const
.
он находится в библиотеке, я не могу его изменить.
В этом случае вам не повезло,Вы также можете сделать get_work
неконстантным тоже, потому что work
, кажется, изменяет m_work
, следовательно, изменяет ваш CObject
, что вы не можете сделать методом const
.