У меня есть класс с двумя функциями-членами, которые отличаются только модификатором const
.Функция члена с модификатором const.
class CFoo
{
private:
int x;
int y;
public:
static int a;
void dosmth() const {
a = 99;
}
void dosmth(){
x++;
y++;
}
};
int CFoo::a = 100;
int main(){
CFoo foo;
cout << CFoo::a << endl;
foo.dosmth();
cout << CFoo::a << endl;
}
Следующий код печатает 100, 100
. Почему называется неконстантный dosmth? Как я могу назвать версию const
явно?
или const_cast (foo) .dosmth(); –
Jarod42
@ Jarod42 Спасибо, я добавил пример. – juanchopanza
'const CFoo foo1;' не сможет скомпилироваться, потому что члены 'x' и' y' не имеют инициализаторов. –