初识C++之封装
學習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; };總結
- 上一篇: 服务器修改用户组权限设置,如何:修改用户
- 下一篇: 通过对象指针的方式强行指定到子类_C++