c++類和對象的複習整理

一、類的定義

類是創建對象的模板,一個類可以創建多個對象,每個對象都是類類型的一個變量;創建對象的過程也叫類的實例化。每個對象都是類的一個具體實例(Instance),擁有類的成員變量和成員函數。

class Circle
{
public://公有屬性
char *m_name;
int m_length;
void print()
{
cout<<name<<length<<endl;
}

private://私有屬性
protected://保護屬性
};

類中包含三個屬性:
共有屬性:可以在類中調用,也可以在類外調用。
私有屬性:只能類內調用。(在類內定義對象時,未聲明屬性的對象都默認爲私有屬性)
保護屬性:只能類內調用。
在類的內部(定義類的代碼內部),成員之間是可以互相訪問的,沒有訪問權限的限制。

在類的外部(定義類的代碼之外),只能通過對象訪問成員,並且通過對象只能訪問 public 屬性的成員,不能訪問 private、protected 屬性的成員。

Circle是類的名稱;類名的首字母一般大寫。
上面的例子中定義了兩個公有屬性的成員變量和一個公有屬性的成員函數。

類是一個模板(Template),編譯後不佔用內存空間,所以在定義類時不能對成員變量進行初始化,因爲沒有地方存儲數據。只有在創建對象以後纔會給成員變量分配內存,這個時候就可以賦值了。

注意在類定義的最後有一個分號;它是類定義的一部分,表示類定義結束了,不能省略。

二、類中的成員變量和成員函數

1、成員變量

在定義類的成員變量時,不要爲變量進行初始化,因爲類相當於一種數據結構,本身不佔據內存空間,如果對變量進行初始化,就需要開闢內存空間來保存數據。
上例中成員變量寫成了m_length的寫法,以“m_”做開頭,是一種約定俗成的寫法。

2、成員函數

成員函數可以在類外定義也可以在類內定義:在類內定義的函數,相當於內聯函數,構建函數體,調用時直接 宏替換就可以完成操作,而在類外定義的函數則不會如此。

class Circle
{
public:
void print();
}void Circle::print()
{
cout<<類外實現<<endl;
}

在類外實現函數時,應該用::域解析符,指出定義的函數屬於哪一個類。

我們在編程時,要養成類內定義函數,類外實現函數的習慣。

三、創建對象

class Circle c1;
Circle c1;

以上兩個定義方式都是正確的,定義時可以省略class
Circle是類名,c1是創建的對象名。

創建類的對象時,可以同時創建類的對象數組

Circle c1[10];

上例表示定義了十個Circle類型的對象數組。

創建對象以後,可以使用點號.來訪問成員變量和成員函數,這和通過結構體變量來訪問它的成員類似

四、創建類的對象指針

和結構體指針以及爲結構體指針開闢內存空間一樣,類也可以創建對象指針,以及開闢內存空間。
1、定義指針

Circle c1;
Circle *p1=&c1;

2、個類的對象指針分配內存

Circle *p1=new Circle;

delete p1;

類的對象指針指向類,指針可以指向類中的成員變量和成員函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章