您的位置:首页 > 汽车 > 时评 > 3g网站制作_下载小程序_seo技术网_网络服务主要包括什么

3g网站制作_下载小程序_seo技术网_网络服务主要包括什么

2024/12/27 23:47:39 来源:https://blog.csdn.net/weixin_42255569/article/details/144748213  浏览:    关键词:3g网站制作_下载小程序_seo技术网_网络服务主要包括什么
3g网站制作_下载小程序_seo技术网_网络服务主要包括什么

文章目录

    • 条款 22:将成员变量声明为 private
      • 核心思想
      • 示例代码
      • 注意事项
      • 结论

条款 22:将成员变量声明为 private

核心思想

  1. 成员变量的封装性
    将成员变量声明为 private 是面向对象设计的重要原则,有助于保持封装性。

  2. 为何使用 private?

    • 访问的一致性:通过提供公共接口(如 getter 和 setter),可以统一访问逻辑。
    • 细致的访问控制:可以精确控制哪些操作允许客户执行,防止非法访问。
    • 保证约束条件:通过接口,可以确保成员变量的值总是符合约束条件。
    • 实现灵活性:可以随时修改内部实现,而无需更改外部接口。
  3. 避免使用 protected
    protected 并不比 public 更具封装性,因为派生类可以直接访问成员变量,破坏封装原则。


示例代码

class Person {
public:// 构造函数Person(const std::string& name, int age) : name_(name), age_(age) {}// getter 和 setterconst std::string& getName() const { return name_; }void setName(const std::string& name){ name_ = name; }int getAge() const { return age_; }void setAge(int age) {if (age >= 0) age_ = age;  // 确保年龄非负}private:std::string name_;  // 姓名int age_;           // 年龄
};

注意事项

  1. 不要使用 public 或 protected 成员变量

    class Person {
    public:std::string name;  // 不推荐:破坏封装int age;           // 不推荐:外部可直接操作
    };
    
    • 问题:外界可以直接操作 nameage,导致对象可能进入非法状态。
    • 改进:将成员变量设为 private,并提供访问接口。
  2. 避免使用 protected 成员变量

    class Base {
    protected:int data;  // 不推荐:派生类可以直接访问
    };
    
    • 问题:派生类可直接操作 data,破坏封装,增加错误风险。
    • 改进:将成员变量设为 private,派生类通过基类的公共接口访问。

结论

  1. 始终将成员变量声明为 private,以保护封装性。
  2. 使用公共接口(getter 和 setter)控制成员变量的访问。
  3. 避免使用 protected 成员变量,因为它破坏封装原则。
  4. 通过良好的封装设计,可以提高代码的健壮性和可维护性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com