Вот тривиальный пример инкапсуляции C ++:
class Foo{
public:
int getBar() const { return m_Bar; }
void setBar(Bar _value){ m_Bar = _value; }
private:
Bar m_Bar;
};
Видите ли, ничто вне класса не может видеть приватное поле. Следовательно, единственный способ получить доступ или изменить переменную "Bar" - использовать методы get / set.