在C++中,通常通过公共成员函数来实现get和set操作,这样可以确保数据的访问和修改都经过封装的控制。尽管get和set函数暴露了类的内部实现细节,但只有通过这些函数才能访问和修改数据,从而保证了数据的安全性和一致性。
因此,get和set并不一定违反封装原则,只要在实现时合理地控制访问权限和操作逻辑,仍然可以保持封装的特性。