一,類的定義和聲明.
"最簡單地說來,類就是定義了一個新的類型和一個新的作用域"
①定義
class 類名{
public:
private:
}; //分號不能省,因爲在分號與右括號之間可以定義多個類對象.
②構造函數
創建類類型對象時,編譯器會自動使用一個構造體函數來初始化該對象.
構造函數是一個與類同名的成員函數,用於給每個數據成員設置初始值.
類名(): data_member1(初始值), data_member2(初始值) {}
③成員函數
成員函數在類內部定義默認爲inline,在外部定義的函數必須標明在類的作用域中.
類型 類名::成員函數(參) {}
定義重載成員函數
同名成員函數只要含有不同類別或不同數量的形參便可實現成員函數重載.
char get() { return char; }
char get(char a) { return a; }
二,類的作用域
①使用類的成員.
類的對象或指針分別使用 . 或 -> 來訪問成員.
類對象使用 . 類對象名.成員名
類指針使用 -> 類指針名->成員名
②作用域與成員定義必須指明成員出現在哪個類中:
double Sale_item::avg_price() const {}
這樣定義,標明瞭該函數在Sale_item作用域中,在函數的定義體中出現的類的成員可直接引用.
④函數返回類型不一定在類作用域中
class Screen{
public:
typedef std::string::size_type index; //在類定義內部出現對index定義
index get_cursor() ;
};
inline Screen::index Screen::get_cursor() {} //定義get_cursor()函數
此處爲類定義體的外部,Index是在類定義體內部出現的,所以一定要限定index這個類型是在Screen這個類的作用域中.