您的位置:首页 > 编程语言 > C语言/C++

初识C++之封装

2016-04-12 21:21 357 查看
学习C++不得不说到C++的三大特性:封装、继承、多态,今天就先来剖析一下他的封装性。

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;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: