Использование шаблона
class MyClass {
private: int a;
public: void setA(int x) { a = x; }
public: int getA() const { return a; }
};
кажется объектно-ориентированным и имеет отправленную инкапсуляцию.
Однако, как вы заметили, вы все равно можете напрямую получить доступ ки ничего не получится, если просто сделать a
общедоступным и получить к нему прямой доступ.
Использование таких методов получения и установки не имеет смысла в C ++.