Сообщение Re: "class const - метод" - можно ли организовать? от 23.09.2015 10:30
Изменено 23.09.2015 10:36 VTT
У вас тут const-ность нарушается из-за наличия в классе не const ссылки на самого себя. Этот пример можно упростить до
class
t_Something
{
protected: t_Something * m_p_non_const;
protected: int m_x = 0;
public: t_Something(void)
: m_p_non_const(this)
{
// do nothing;
}
public: void
Set_X(int const x) const
{
m_p_non_const->m_x = x;
}
};
int
main(void)
{
t_Something something;
something.Set_X(42);
}
У вас тут const-ность нарушается из-за наличия в классе не const ссылки на самого себя. Этот пример можно упростить до
Если хочется гарантий, то можно делать immutable объекты.
class
t_Something
{
protected: t_Something * m_p_non_const;
protected: int m_x = 0;
public:
t_Something(void)
: m_p_non_const(this)
{
// do nothing;
}
public: void
Set_X(int const x) const
{
m_p_non_const->m_x = x;
}
};
int
main(void)
{
t_Something something;
something.Set_X(42);
}
Если хочется гарантий, то можно делать immutable объекты.