生活随笔
收集整理的這篇文章主要介紹了
类和对象——封装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
封裝是C++面向對象三大特性之一
封裝的意義:
將屬性和行為作為一個整體,表現生活中的事物
#include <iostream>
using namespace std
;const double PI
= 3.14;
class Circle{
public: int m_r
;double calculateZC(){return 2*PI
*m_r
;}
};int main(){Circle c1
;c1
.m_r
= 10;cout
<< "圓的周長為" << c1
.calculateZC()<< endl
;return 0;
}
將屬性和行為加以權限控制
- public 公共權限 :類內可以訪問,類外可以訪問
- protected 保護權限:類內可以訪問,類外不可以訪問 兒子可以訪問父親中的保護內容
- private 私有權限:類內可以訪問,類外不可以訪問 兒子不可以訪問父親中的私有內容
#include <iostream>
#include <string>
using namespace std
;
class Person{
public:string m_Name
;
protected:string m_Car
;
private:int m_Password
;
private:void func(){ m_Name
="張三";m_Car
="奔馳";m_Password
=12345;}
};
int main(){ Person s1
;s1
.m_Name
= "李四";s1
.m_Car
= "BMW";s1
. m_Password
= 123;
}
結果:
struct和class的區別:
在C++中struct和class唯一的區別在于默認訪問權限不同
- struct的默認訪問權限為公共
- class的默認訪問權限為私有
成員屬性設置為私有
優點1:將所有成員屬性設置為私有,可以自己控制讀寫權限
優點2:對于寫權限,我們可以檢測數據的有效性
#include <iostream>
#include <string>
using namespace std
;
class Person{
public:void setName(string name
){m_Name
= name
;}string
getName(){return m_Name
; }int getAge(){m_Age
= 0; return m_Age
;} void setAge(int age
){if(age
< 0 || age
> 0){m_Age
= 0 ;cout
<< "你這個老妖精!" << endl
; return ;}m_Age
= age
;} void setLover(string lover
){m_Lover
= lover
;}
private:string m_Name
;int m_Age
;string m_Lover
;
};
int main(){ Person p
;p
.setName("張三");cout
<< "性名為:" << p
.getName() << endl
;p
.setAge(43);cout
<< "年齡為:" << p
.getAge() << endl
;p
.setLover("dlrb");
}
總結
以上是生活随笔為你收集整理的类和对象——封装的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。