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\n", i);   // i = 2; 使用局部变量

    printf("::i = %d\n", ::i);    // ::i = 1;使用全局变量

    // printf("test.i = %d\n", test.i);// Error 访问私有成员,出错

    printf("test.j = %d\n", test.j); //test.j = 4   

    printf("test.getI() = %d\n", test.getI()); 
// test.getI()=3 通过公开成员,去访问私有成员 return 0; }

 

小结

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

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

 

posted @ 2018-03-07 23:08  诺谦  阅读(2064)  评论(0编辑  收藏  举报