请求各个大佬,c++结构体能不能实现信息的封装和隐藏?
可以的 struct A { private: int a; public: int geta() { return a; } void seta(int a) { a = v; } }; 这样a就只能通过geta() seta()访问,不能直接访问
想要隐蔽信息可以用 pImpl 手法。但它不同于 private ,是确实付出运行时开销的。具体用不用看业务要求。 个人认为 pImpl 本意是保持 ABI 兼容,隐蔽信息是附带的。应在需要维持 ABI 时,或需要加快编译时使用。
你好!遇到什么技术难题了嘛?请点击我要提问,我们免费帮您解答!!!
可以的 struct A { private: int a; public: int geta() { return a; } void seta(int a) { a = v; } }; 这样a就只能通过geta() seta()访问,不能直接访问
想要隐蔽信息可以用 pImpl 手法。但它不同于 private ,是确实付出运行时开销的。具体用不用看业务要求。 个人认为 pImpl 本意是保持 ABI 兼容,隐蔽信息是附带的。应在需要维持 ABI 时,或需要加快编译时使用。