Инкапсуляция - сокрытие методов и полей класса от пользователя, в целях сохранения внутренних инвариантов. В С++ члены класса классифицируются в соответствии с правами доступа на следующие три категории: публичные (public), частные (private) и защищенные (protected). Любая функция программы имеет доступ к публичным членам. Доступ к частному члену имеют только функции-члены класса или функции-друзья класса. Защищенные члены аналогичны частным членам. Разница между ними появляется только при наследовании классов.
Сеттер — это метод класса, который задаёт значение инкапсулированного поля с предварительной проверкой. Геттер — это метод класса, который возвращает значение инкапсулированного поля. Чтобы отличать сеттер, от обычного метода используеться префикс "set_", а для геттера префикс "get_".
virtual void f()=0;// чисто виртуальная ф-ция делает класс абстрактным и запрещает создание объектов класса.