类与封装

南楼画角 提交于 2020-02-26 15:49:25

前面我们讲过类之间是存在关系的,类将它复杂零碎的东西全部封装在自己的内部,对它的内部状态我们的调用者一无所知,它表示给用户的是一些简单的使用方式,从这个角度类可以分为2个部分,一个是类的实现细节,一个是类的使用方式,对于调用者而言,类的内部细节我们往往可以忽略它,我们只需要知道怎样用就行了,比如对于用户(调用者)看电视你只需要会换台就行,不用管电视内部是怎么工作的,电视内部工作的实现是工程师需要考虑的(封装),对于用户会用即可
在这里插入图片描述
封装的基本概念
-并不是类的每个属性都是对外公开的
比如女孩子的体重和年龄
-而一些类的属性是对外公开
比如人的姓名和性别
-必须在类的表示中定义属性和行为的公开级别
比如文件系统的权限
C++中类的封装
-成员变量: C++中用于表示类属性的变量
-成员函数: C++中用于表示类行为的函数
-C++中可以给成员变量和成员函数定义访问级别,成员函数是可以访问成员变量的
public
成员变量和成员函数可以在类的内部和外界访问和调用
private
成员变量和成员函数只能在类的内部被访问和调用

在一篇文章的基础上添加两个类,一个是女生类,它肯定继承于人类,我们上面打过比方,女生的体重年龄不希望被别人知道,所以它就是private类型的,这样的语法是C++新引入的访问级别的定义,也就是我们所说的封装的体现,prviate这个关键字就来定义访问级别为私有,后面接着:表示作用范围,打印函数我们public修饰表示为公有,就可以被外界所调用和访问,男生类道理也是如此
例子:
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

类成员的作用域
类成员的作用域只在类的内部,外部无法直接访问(需要实例化对象)
成员函数可以直接访问成员变量和调用成员函数(上面的女生类的print)
类的外部可以通过类变量访问public成员(上面的男生类)
类成员的作用域与访问级别没有关系(重点)
C++中用struct定义的类中所有成员默认为public

例子:
在这里插入图片描述
结果:
在这里插入图片描述
这个程序告诉我们对于类而言它是有作用域的,类的作用域指的是类成员变量和成员函数的作用域,它们的作用域仅仅在类的花括号里面,如果想访问类的成员,必须通过一个对象(获得作用域),但是是否能访问成功还有访问级别的控制,所以说类成员的作用域和类成员的访问级别是俩回事

参考狄泰软件学院

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!