面向對象程序設計
概念:是一種程序設計泛型,同時也是一種程序開發的方法。
對象指的是類的實例,將對象作爲程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性,靈活性,和擴展性。
C++不是純面嚮對象語言,而是基於面嚮對象語言,因爲包含c語言
三種訪問限定符
1:public成員可從類外部直接訪問,private/protected成員不能從外部直接訪問。
2:每個限定符在類體重可使用多次,它的作用域是從該限定符出現開始到下一個限定符之前或類體結束之前
3:類體中如果沒有定義限定符,則默認是私有的。
4:類的訪問限定符體現了面向對象的封裝性。
作用域
類的作用域
1:每個類都定義了自己的作用域,類的成員(成員函數/成員變量)都在類的這個作用域內,成員函數內可任意訪問成員變量函數。
2:對象可以通過,直接訪問公有成員,指向對象的指針通過->也可以直接訪問對象的公有成員。
3:在類體外定義成員,需要使用::作用域解析符指明成員屬於哪個類域。
成員函數的定義與聲明
1:類內定義成員函數
class person
{
public:
void Display()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
public:
char *_name;
char *_sex;
char _age;
};
類外面定義成員函數
class person
{
public:
void Display();
public:
char *_name;
char *_sex;
char _age;
};
void person::Display()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
類實例化對象
1:類知識一個模型一樣的東西,限定了類有那些成員,定義出一個類並沒有分配實際的內存空間來存儲它。
2:一個類可以實例化出多個對象,實例化出的對象佔用實際的物理空間存儲類成員變量
3:做個比方。類實例化出對象就像現實中是用建築設計圖設計出的房子,類就像是設計圖,只需要設計出需要什麼東西,但是並沒有存在,同樣類也只是一個設計,實例化出的對象才能實際存儲數據,佔用物理空間。
類對象存儲模型
每個對象的大小爲類中所有成員變量的大小之和,當然也遵循內存對齊原則。