初识C++之封装
2016-04-12 21:21
357 查看
学习C++不得不说到C++的三大特性:封装、继承、多态,今天就先来剖析一下他的封装性。
1、什么是封装
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
下面把一个汽车抽象为一个类来举例:
2、封装的目的
封装的目的是增强安全性和简化编程,它们分别体现在:
①增强安全性:使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的数据成员。通过封装使一部分成员充当类与外部的接口(函数/方法,一般定义为公有public),而将其他的成员隐蔽起来(一般定义为私有private,根据需要也会定义为protected),这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性。
②简化编程:封装存在的理由就是代码的重用(复),重用就是写的一段代码可以在很多地方得到使用,而不是每需要使用时就写一份,而且易于扩充。从开发的角度这样十分的省事,不必做重复的工作,在使用的角度,十分的节约内存,
3、封装的访问权限
①公有
通过关键字public来实现,公有访问方式是允许访问的最高级别,公有的成员可以被类的成员函数访问,也可以在类外被直接访问,一般用public来定义类的接口。
②私有
通过关键字private来实现,私有访问方式是允许访问的最低级别,私有的成员在可以本类的成员函数访问,但不能在该类外直接被访问,。
③保护
通过关键字protected来实现,保护的成员可以在本类及派生类中被访问。
最后,用上面的汽车类给出实际的代码:
1、什么是封装
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
下面把一个汽车抽象为一个类来举例:
2、封装的目的
封装的目的是增强安全性和简化编程,它们分别体现在:
①增强安全性:使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的数据成员。通过封装使一部分成员充当类与外部的接口(函数/方法,一般定义为公有public),而将其他的成员隐蔽起来(一般定义为私有private,根据需要也会定义为protected),这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性。
②简化编程:封装存在的理由就是代码的重用(复),重用就是写的一段代码可以在很多地方得到使用,而不是每需要使用时就写一份,而且易于扩充。从开发的角度这样十分的省事,不必做重复的工作,在使用的角度,十分的节约内存,
3、封装的访问权限
①公有
通过关键字public来实现,公有访问方式是允许访问的最高级别,公有的成员可以被类的成员函数访问,也可以在类外被直接访问,一般用public来定义类的接口。
②私有
通过关键字private来实现,私有访问方式是允许访问的最低级别,私有的成员在可以本类的成员函数访问,但不能在该类外直接被访问,。
③保护
通过关键字protected来实现,保护的成员可以在本类及派生类中被访问。
最后,用上面的汽车类给出实际的代码:
class Car { public: Car(char _Brand[20], char* _Color, int _Price, char* _Orgin, int _Consumption) //构造函数 : Brand(_Brand) //初始化列表 , Color(_Color) , Price(_Price) , Consumption(_Consumption) , Orgin(_Orgin) {} Car(const Car& car) //拷贝构造函数 : Brand(car.Brand) //初始化列表 , Color(car.Color) , Price(car.Price) , Consumption(car.Consumption) , Orgin(car.Orgin) {} ~Car() //析构函数 { cout << "~Car" << endl; } void Run() { cout << "run the car" << endl; } void Drive() { cout << "drive" << endl; } void Park() { cout << "park" << endl; } void Back() { cout << "back a car" << endl; } void Refuel() { cout << "refuel" << endl; } private: char *Brand; char *Color; int Price; char *Orgin; int Consumption; };
相关文章推荐
- [C++]vector 的 push_back实现原理
- C++作业3
- c++作业2
- C++实现开机启动
- c++课程第一次实验
- 山东省第四届ACM大学生程序设计竞赛-Contest Print Server(模拟)
- C++实验3:个人所得税
- C++作业3
- c++作业3
- C++常见字符输入的做法
- C/C++用new、delete分配回收堆中空间
- c++实验2-计算并输出体重状态
- C++第三次上机实验其他作业
- i=i++在Java和C++中的输出
- C++作业3
- 光线跟踪(RayTracing)原理及c++实现
- C++实验3-多分数段函数求值
- c++上机1.2
- C++学习之旅eof()、fail()
- c++中min和max函数