zoukankan      html  css  js  c++  java
  • 7.C++类与封装的概念

    类通常分为以下两部分

    • -内部具体实现
    • -外部使用方法

    比如:

    用户使用手机,只需要知道如何使用.

    手机开发者,则需要考虑手机内部的实现细节.

     

     

    类的封装

    并不是类的每个成员变量和成员函数都要对外公开

    比如:

    女孩不希望外人知道自己的体重weight和年龄age

    男孩不希望外人知道自己的身高height和工资salary

    而某些属性是对外公开的

    比如:姓名,学历,国籍等.

    所以在类里,可以给成员变量和成员函数定义访问级别:

    • -public   公开成员,允许成员变量和成员函数可以被类内部和外界使用(默认为public)
    • -private   私有成员,只能被类内部使用

      

    类成员的作用域

    类成员的作用域都只在类的内部,外部无法直接访问

    成员函数可以直接访问成员变量调用成员函数

    类的外部可以通过类变量访问public成员

    类成员的作用域访问级别没有关系

     

    参考如下代码:

    #include <stdio.h>
    
    int i = 1;          //定义全局变量
     
    struct Test
    {
    private:
        int i;         //定义私有成员变量i
    
    public:
        int j;
      
        int getI()
        {
            i = 3;       
            return i;
        }
    };
    
    
    int main()
    {
        int i = 2;      //定义局部变量i
    
        Test test;
    
        test.j = 4;
    
        printf("i = %d
    ", i);   // i = 2; 使用局部变量
    
        printf("::i = %d
    ", ::i);    // ::i = 1;使用全局变量
    
        // printf("test.i = %d
    ", test.i);// Error 访问私有成员,出错
    
        printf("test.j = %d
    ", test.j); //test.j = 4   
    
        printf("test.getI() = %d
    ", test.getI()); 
    // test.getI()=3 通过公开成员,去访问私有成员 return 0; }

    小结

    类通常分为使用方法内部细节两部分

    类的封装机制(public/private)使得使用方法和内部细节相分离

     

  • 相关阅读:
    Python——Sublime Text3编写Python的一些问题
    html/css/js----js中遇到的一些问题
    eclipse--常见问题
    前端如何实现拖拽效果(一)
    在vue中如何实现上传本地视频和图片预览
    关于NodeJS中mysql连接池卡死问题
    学习Mysql3——约束条件
    Vuex基础用法
    学习Mysql2--增删改查
    学习Mysql1——mysql安装和基本命令使用
  • 原文地址:https://www.cnblogs.com/lifexy/p/8525994.html
Copyright © 2011-2022 走看看