前面我们讲过类之间是存在关系的,类将它复杂零碎的东西全部封装在自己的内部,对它的内部状态我们的调用者一无所知,它表示给用户的是一些简单的使用方式,从这个角度类可以分为2个部分,一个是类的实现细节,一个是类的使用方式,对于调用者而言,类的内部细节我们往往可以忽略它,我们只需要知道怎样用就行了,比如对于用户(调用者)看电视你只需要会换台就行,不用管电视内部是怎么工作的,电视内部工作的实现是工程师需要考虑的(封装),对于用户会用即可
封装的基本概念:
-并不是类的每个属性都是对外公开的
比如女孩子的体重和年龄
-而一些类的属性是对外公开
比如人的姓名和性别
-必须在类的表示中定义属性和行为的公开级别
比如文件系统的权限
C++中类的封装
-成员变量: C++中用于表示类属性的变量
-成员函数: C++中用于表示类行为的函数
-C++中可以给成员变量和成员函数定义访问级别,成员函数是可以访问成员变量的
public
成员变量和成员函数可以在类的内部和外界访问和调用
private
成员变量和成员函数只能在类的内部被访问和调用
在一篇文章的基础上添加两个类,一个是女生类,它肯定继承于人类,我们上面打过比方,女生的体重年龄不希望被别人知道,所以它就是private类型的,这样的语法是C++新引入的访问级别的定义,也就是我们所说的封装的体现,prviate这个关键字就来定义访问级别为私有,后面接着:表示作用范围,打印函数我们public修饰表示为公有,就可以被外界所调用和访问,男生类道理也是如此
例子:
结果:
类成员的作用域
类成员的作用域只在类的内部,外部无法直接访问(需要实例化对象)
成员函数可以直接访问成员变量和调用成员函数(上面的女生类的print)
类的外部可以通过类变量访问public成员(上面的男生类)
类成员的作用域与访问级别没有关系(重点)
C++中用struct定义的类中所有成员默认为public
例子:
结果:
这个程序告诉我们对于类而言它是有作用域的,类的作用域指的是类成员变量和成员函数的作用域,它们的作用域仅仅在类的花括号里面,如果想访问类的成员,必须通过一个对象(获得作用域),但是是否能访问成功还有访问级别的控制,所以说类成员的作用域和类成员的访问级别是俩回事
参考狄泰软件学院
来源:CSDN
作者:想进步
链接:https://blog.csdn.net/qq_41936794/article/details/104515082