概述
1 访问限定符
C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其
接口提供给外部的用户使用。
int main()
{
//Student 是类名,可以将其看成是学生的一个群体
//s 是用Student类定义出来的对象
Student s;
//编译报错:因为Student不是一个具体的学生,我们不能将名字,性别,年龄放到Student中
//Student.InitStudent("Perter","男",18);
//s 是一个具体存在的学生,我们才可以将名字,性别,年龄放到具体的学生对象中
//报错:无法访问private的成员
//s.InitStudent("Perter", "男",18);
return 0;
//注意:
//类:是对对象(实体)来进行描述的,但是类不是对象(实体)
//学生类别--不等于某个具体学生
//类也可以看成是新定义了一种数据类型
}
【访问限定符说明】
- public修饰的成员在类外可以直接被访问
- protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
- 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
- class的默认访问权限为private,struct为public(因为struct要兼容C)
注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别
问题:C++中struct和class的区别是什么?
解答:C++需要兼容C语言,所以C++中struct可以当成结构体去使用。另外C++中struct还可以用来定义类。
和class是定义类是一样的,区别是struct的成员默认访问方式是public,class是struct的成员默认访问方式
是private。
4.2 封装
面向对象的三大特性:封装、继承、多态。
在类和对象阶段,我们只研究类的封装特性,那什么是封装呢?
封装:将数据和操作数据的方法进行有机结合—(class),隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互----(访问限定符:限定类中那些成员可以在类外来进行使用)
访问限定符:
private:修饰的成员在类外不能直接被访问
protected:修饰的成员在类外不能直接被访问(暂且这么理解)
public:修饰的成员在类外可以直接被访问
注意:
struct定义的类默认情况下的访问权限是public(共有的)
class定义的类默认情况下的访问权限是private (私有的)
一般情况下,数据是私有的,函数是共有的(共有的可以在类外被访问,共有的和保护的不能被直接访问)
为什么要封装?
不想让其他人看到我自己的一些隐私
函数:实际就是将一些语句包装到一块
C语言:数据+操作数据的函数=程序
C++:各种不同的对象,对象之间相互交互完成事情
对象:有对象的属性(数据),还有对象所有的功能(方法)
最后
以上就是大气路灯为你收集整理的类的访问限定符及封装的全部内容,希望文章能够帮你解决类的访问限定符及封装所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复