c++ mooc 類和對象

  • 結構化程序設計

    c語言: 程序 = 數據結構 + 算法

    程序右全局變量和互相調用的函數組成,算法以函數實現,對數據結構進行操作

    不足:函數與其操作的數據結構沒有直觀聯繫;函數規模增加程序難以理解;沒有封裝和隱藏的概念,當數據結構改變時,數      據結構的使用需要一一修改

  • 面向對象程序設計

    c++:類+類+····

    設計方法:

  1. 某類客觀事物共同屬性歸納爲一個數據結構
  2. 將這些類所能進行的行爲也歸納出來,爲函數,用來操作數據結構(即抽象過程)
  3. 將數據結構與操作數據結構的函數捆綁在一起形成類 (即封裝過程)

    四個基本特點:抽象、封裝、繼承、多態

    類 = 成員變量+成員函數

    對象:類定義的變量,也叫實例

class Rectangle:   //Rectangle爲類
{
    public:
        int width,height;
        int init(w,h){width=w; height=h;}
        int area(){return width*height;}
        int prem(){return 2*(width+height);}
};


int main(){
Rectangle r;  //r爲對象也叫Rectangle類的實例
int w=1,h=2;
r.init(w,h);
cout<<r.area();
return 0;
}

    對象空間只包含類的成員變量大小,不包含成員函數,成員函數被所有對象共享

    對象之間可以用“=”賦值,不可以比較

    類的定義和成員函數可以分開寫

class Rectangle:   //Rectangle爲類
{
    public:
        int width,height;
        int init(w,h);
        int area();
        int prem();
};

int Rectangle::init(w,h){width=w; height=h;}
int Rectangle::area(){return width*height;}
int Rectangle::prem(){return 2*(width+height);}

    使用成員函數仍舊需要用對象來調用

  • 使用類的成員變量和成員函數
//方式1
Rectangle r1;
r1.w=5;

//方式2
Rectangle r1,r2;
Rectangle *p1 = &r1;
Rectangle *p2 = &r2;
p1->w=5;
p2->init(7,1);

//方式3
Rectangle r;
Rectangle &rr = r;
rr.init(7,1);
  •     類成員的可訪問範圍
class className{
    private:
        //私有屬性和函數
    protected:
        //保護屬性和函數
    public:
        //共有屬性和函數
};

  如果缺省關鍵字,則默認私有

  類的成員函數內部可以訪問:當前對象的全部屬性函數,同類的其他對象的全部屬性和函數

  成員函數以外的地方:僅可訪問類的對象的公有部分

  設置私有成員(隱藏),是爲了強制對成員變量的訪問必須通過成員函數,修改成員變量屬性時只需修改成員函數即可。

  成員函數也可以函數重載和缺省,注意避免二義性

發佈了25 篇原創文章 · 獲贊 4 · 訪問量 7392
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章