[筆記] C++學習筆記(類別、物件、多載)

類別(Class):
類別是從C語言的結構體擴充而來的,原本的結構體是可以存放許多變數,

類別不但可以加入變數,還可以加入函數在裡頭。
雞蛋盒類別的程式碼:
class 雞蛋盒子
{
public:
    void 放入(int 放入雞蛋);  //這些是函數
    void 取出(int 取出雞蛋);  //這些是函數
    void 盒子空的();         //這些是函數
    int 回報數量(){          //這些是函數
        return 總數量;
    }
private:
    int 總數量; //這是變數
};
類別中函數的定義,跟一般函數沒捨麼差別,只要在前面補上函數的類別名稱即可:
void 雞蛋盒子::放入(int 放入雞蛋)
{
    總數量 = 總數量 + 放入雞蛋 ;
}
類別中的函數可以互相呼叫:
void 雞蛋盒子::盒子空的()
{
    總數量 = 0 ;
}
void 雞蛋盒子::取出(int 取出雞蛋)
{
    總數量 = 總數量 - 取出雞蛋 ;
    if  (總數量 < 0) {
        盒子空的() ; //呼叫「盒子空的」這個類別中的其他函數
        }
}

物件(Object):
物件就是個東西!是什麼東西?是依照類別創造的東西。換句話說,類別是物件的設計圖
我們根據雞蛋盒子的設計圖,設計了兩個雞蛋盒子的物件,分別是12顆裝與6顆裝
雞蛋盒子 一打裝的雞蛋盒子; //12顆裝的雞蛋盒子
雞蛋盒子 半打裝的雞蛋盒子; // 6顆裝的雞蛋盒子
既然物件是依照類別這張設計圖所創造出來的,那麼我們也可以呼叫他的函數來用
雞蛋盒子 一打裝的雞蛋盒子;

一打裝的雞蛋盒子.盒子空的(); //設定盒子裡面一開始是空的
一打裝的雞蛋盒子.放入(10);   //把10顆雞蛋放入雞蛋盒子裡頭
建構子(Constructor):在產生物件時就可以自動呼叫某些函數或變數。
class 雞蛋盒子
{
public:
    雞蛋盒子();           //補上一個叫做雞蛋盒子的函數
.....
}

void 雞蛋盒子::雞蛋盒子() //補上這段函數,解釋呼叫雞蛋盒子時要做的事情
{
    總數量 = 0 ;
}

雞蛋盒子 一打裝的雞蛋盒子; //這時,雞蛋盒子()這函數就會立刻啟動
多載(Overload):引數的型別或數值可以把不是相同名稱的函數做複數定義。
宣告時:
double GetCircleArea(int r, double pi) //第一個引數是int
{
  return r * r * pi ;
}
double GetCircleArea(dobule r, double pi) //第一個引數是double
{
  return r * r * pi ;
}
double GetCircleArea(int r) //沒有第二個引數
{
  return r * r * 3.14 ;
}
呼叫時:會根據用的不同變數,使用不同的宣告函數
int Main()
{
  int r1=10;
  double area, r2 = 10.1;
  
  area = GetCircleArea(r1, 3.14); //因為r1是int走第一個宣告
  area = GetCircleArea(r2, 3.14); //因為r2是double走第二個宣告
  area = GetCircleArea(r2);       //因為只有宣告一個引數走第三個宣告
}

參考書目:
1. 新C++ 學習繪本, ANK Co., Ltd著, 博碩文化譯

提醒

本站內容即日起將轉到另一站上轉跳~