C++中類及類的定義 (轉)
C++中類及類的定義 (轉)[@more@] 在面向的設計中,有經常接觸類、物件等專業名詞;到底什麼是類、什麼是物件呢?在程式又是怎樣運用呢?類是物件導向程式設計的核心,它實際是一種新的資料型別,也是實現抽象型別的工具,因為類是透過抽象資料型別的方法來實現的一種資料型別。類是對某一類物件的抽象;而物件是某一種類的例項,因此,類和物件是密切相關的。沒有脫離物件的類,也沒有不依賴於類的物件。
什麼是類
類是一種複雜的資料型別,它是將不同型別的資料和與這些資料相關的操作封裝在一起的集合體。這有點像C語言中的結構,唯一不同的就是結構沒有定義所說的“資料相關的操作”,“資料相關的操作”就是我們平常經常看到的“方法”,因此,類具有更高的抽象性,類中的資料具有隱藏性,類還具有封裝性。
類的結構(也即類的組成)是用來確定一類物件的行為的,而這些行為是透過類的內部資料結構和相關的操作來確定的。這些行為是透過一種操作介面來描述的(也即平時我們所看到的類的成員),使用者只關心的是介面的功能(也就是我們只關心類的各個成員函式的功能),對它是如何實現的並不感興趣。而操作介面又被稱為這類物件向其他物件所提供的服務。
類的定義格式
類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為“方法”。實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者“幹什麼”,而實現部分是告訴使用者“怎麼幹”。
類的一般定義格式如下:
class
{
public:
private:
};
下面簡單地對上面的格式進行說明:class是定義類的關鍵字,是種識別符號,通常用T字母開始的字串作為類名。一對花括號內是類的說明部分(包括前面的類頭)說明該類的成員。類的成員包含資料成員和成員函式兩部分。從訪問上來分,類的成員又分為:公有的(public)、私有的(private)和保護的(protected)三類。公有的成員用public來說明,公有部分往往是一些操作(即成員函式),它是提供給的介面功能。這部分成員可以在程式中引用。私有的成員用private來說明,私有部分通常是一些資料成員,這些成員是用來描述該類中的物件的屬性的,使用者是無法訪問它們的,只有成員函式或經特殊說明的函式才可以引用它們,它們是被用來隱藏的部分。保護類(protected)將在以後介紹。
關鍵字public,private和protected被稱為訪問許可權修飾符或訪問控制修飾符。它們在類體內(即一對花括號內)出現的先後順序無關,並且允許多次出現,用它們來說明類成員的訪問許可權。
其中,是類定義中的實現部分,這部分包含所有在類體內說明的函式的定義。如果一個成員函式的類體內定義了,實現部分將不出現。如果所有的成員函式都在類體內定義,則實現部分可以省略。
下面給出一個日期類定義的例子:
class TDate
{
public:
void SetDate(int y, int m, int d);
int IsLeapYear();
void Print();
private:
int year, month, day;
};
//類的實現部分
void TDate::SetDate(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
int TDate::IsLeapYear()
{
return(year%4==0 && year%100!=0) || (year%400==0);
}
void TDate::Print();
{
cout< }
這裡出現的作用域運算子::是用來標識某個成員函式是屬於哪個類的。
該類的定義還可以如下所示:
class TDate
{
public:
void SetDate(int y, int m, int d)
{year=y; month=m; day=d;}
int IsLeapYear()
{return(year%4==0 && year%100!=0) || (year%400==0);}
void Print()
{cout<
private:
int yeay, month, day;
}
這樣對成員函式的實現(即函式的定義)都寫在了類體內,因此類的實現部分被省略了。如果成員函式定義在類體外,則在函式頭的前面要加上該函式所屬類的標識,這時使用作用域運算子::。
定義類時應注意的事項
1、在類體中不允許對所定義的資料成員進行初始化。
2、類中的資料成員的型別可以是任意的,包含整型、浮點型、字元型、陣列、指標和引用等。也可以是物件。另一個類的物件,可以作該類的成員,但是自身類的物件是不可以的,而自身類的指標或引用又是可以的。當一個類的物件用為這個類的成員時,如果另一個類的的定義在後,需要提前說明。
3、一般地,在類體內先說明公有成員,它們是使用者所關心的,後說明私有成員,它們是使用者不感興趣的。在說明資料成員時,一般按資料成員的型別大小,由小至大說明,這樣可提高時空利用率。
4、經常習慣地將類定義的說明部分或者整個定義部分(包含實現部分)放到一個頭中。
2001-5-29 18:02 汕頭
什麼是類
類是一種複雜的資料型別,它是將不同型別的資料和與這些資料相關的操作封裝在一起的集合體。這有點像C語言中的結構,唯一不同的就是結構沒有定義所說的“資料相關的操作”,“資料相關的操作”就是我們平常經常看到的“方法”,因此,類具有更高的抽象性,類中的資料具有隱藏性,類還具有封裝性。
類的結構(也即類的組成)是用來確定一類物件的行為的,而這些行為是透過類的內部資料結構和相關的操作來確定的。這些行為是透過一種操作介面來描述的(也即平時我們所看到的類的成員),使用者只關心的是介面的功能(也就是我們只關心類的各個成員函式的功能),對它是如何實現的並不感興趣。而操作介面又被稱為這類物件向其他物件所提供的服務。
類的定義格式
類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為“方法”。實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者“幹什麼”,而實現部分是告訴使用者“怎麼幹”。
類的一般定義格式如下:
class
{
public:
private:
};
下面簡單地對上面的格式進行說明:class是定義類的關鍵字,是種識別符號,通常用T字母開始的字串作為類名。一對花括號內是類的說明部分(包括前面的類頭)說明該類的成員。類的成員包含資料成員和成員函式兩部分。從訪問上來分,類的成員又分為:公有的(public)、私有的(private)和保護的(protected)三類。公有的成員用public來說明,公有部分往往是一些操作(即成員函式),它是提供給的介面功能。這部分成員可以在程式中引用。私有的成員用private來說明,私有部分通常是一些資料成員,這些成員是用來描述該類中的物件的屬性的,使用者是無法訪問它們的,只有成員函式或經特殊說明的函式才可以引用它們,它們是被用來隱藏的部分。保護類(protected)將在以後介紹。
關鍵字public,private和protected被稱為訪問許可權修飾符或訪問控制修飾符。它們在類體內(即一對花括號內)出現的先後順序無關,並且允許多次出現,用它們來說明類成員的訪問許可權。
其中,是類定義中的實現部分,這部分包含所有在類體內說明的函式的定義。如果一個成員函式的類體內定義了,實現部分將不出現。如果所有的成員函式都在類體內定義,則實現部分可以省略。
下面給出一個日期類定義的例子:
class TDate
{
public:
void SetDate(int y, int m, int d);
int IsLeapYear();
void Print();
private:
int year, month, day;
};
//類的實現部分
void TDate::SetDate(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
int TDate::IsLeapYear()
{
return(year%4==0 && year%100!=0) || (year%400==0);
}
void TDate::Print();
{
cout<
這裡出現的作用域運算子::是用來標識某個成員函式是屬於哪個類的。
該類的定義還可以如下所示:
class TDate
{
public:
void SetDate(int y, int m, int d)
{year=y; month=m; day=d;}
int IsLeapYear()
{return(year%4==0 && year%100!=0) || (year%400==0);}
void Print()
{cout<
private:
int yeay, month, day;
}
這樣對成員函式的實現(即函式的定義)都寫在了類體內,因此類的實現部分被省略了。如果成員函式定義在類體外,則在函式頭的前面要加上該函式所屬類的標識,這時使用作用域運算子::。
定義類時應注意的事項
1、在類體中不允許對所定義的資料成員進行初始化。
2、類中的資料成員的型別可以是任意的,包含整型、浮點型、字元型、陣列、指標和引用等。也可以是物件。另一個類的物件,可以作該類的成員,但是自身類的物件是不可以的,而自身類的指標或引用又是可以的。當一個類的物件用為這個類的成員時,如果另一個類的的定義在後,需要提前說明。
3、一般地,在類體內先說明公有成員,它們是使用者所關心的,後說明私有成員,它們是使用者不感興趣的。在說明資料成員時,一般按資料成員的型別大小,由小至大說明,這樣可提高時空利用率。
4、經常習慣地將類定義的說明部分或者整個定義部分(包含實現部分)放到一個頭中。
2001-5-29 18:02 汕頭
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989798/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- php中定義類PHP
- c++中模板_類别範本的宣告和定義C++
- C++學習 類定義(一)C++
- Python中類的定義Python
- 理解Javascript中類的定義JavaScript
- C++模板的定製二:定製C++類 (轉)C++
- C++模板的定製三:部分定製C++類 (轉)C++
- 類定義介面
- Java集合系列(一):集合的定義及分類Java
- JTAG各類介面針腳定義及含義
- 關於C++類的定義和物件的建立詳解C++物件
- 類定義(class definition)
- C++中的容器類C++
- c++ 中的集合類C++
- C++中類的sizeofC++
- 在C++ Builder中定義事件 (轉)C++UI事件
- 自己動手封裝js工具類(JS中定義類的幾種方式)封裝JS
- Javascript 定義類或物件JavaScript物件
- 重學java之類的定義Java
- python類定義的講解Python
- 教你看懂C++類庫函式定義之一---HRESULT 巨集C++函式
- python中物件導向_類_物件的概念與定義Python物件
- 物件導向中類和物件的定義是什麼?物件
- js中關於定義類的幾種方式介紹JS
- 洗牌的一個C++類! (轉)C++
- C++中的容器類詳解C++
- 基類中定義的虛擬函式,子類中必須要覆蓋嗎?為什麼?函式
- C語言/C++程式設計學習—資料結構—連結串列類的宣告及定義C語言C++程式設計資料結構
- c++中模板類的成員函式的宣告與定義應該放在標頭檔案裡C++函式
- 類載入流程,類載入機制及自定義類載入器
- 類别範本及其成員函式的定義及注意事項函式
- 關於C++類方法函式指標的定義和使用方法C++函式指標
- python中類物件及類屬性的介紹Python物件
- C++中巨集定義#define的用法C++
- 結構體和類中屬性定義需要static地方結構體
- Java 內部類的意義及應用Java
- C++模板的定製四:定製成員函式和預設類參 (轉)C++函式
- 如何使用sql得到類似Toad中的表的相關定義SQL