1. 物件導向程式設計(oop)特性:
抽象、封裝和資料隱藏、多型、繼承、**的可重用性
2. 類(型別)
目的: 資料隱藏
指定型別需要的三項工作:
a. 決定資料物件需要的記憶體數量
b. 決定如何解釋記憶體中的位
c. 決定可使用資料物件執行的操作或方法
3. 類宣告
關鍵字 class
格式class classname
;建立物件: classname a,b;
注: private 、 public 裡都可以放資料成員和函式成員
但私有成員,只能通過共有成員函式來訪問或使用
其中[private]可以預設,預設訪問型別是 private
c++對結構進行了擴充套件,預設訪問型別是 public
4. 類方法(類的成員函式)
a. 定義成員函式時,使用作用域解析運算子 :: 來標識函式所屬類
b. 類方法可以訪問類的 private 元件
例如 : void stock::update (double price)
只要類不同,函式名可以同名
例如 : void john::update (double price)
定義類方法內無需加成員限定
定義於類內部的函式將自動成為內聯函式,外部定義的可以加 inline 關鍵字
類方法使用
例如:
stock pqr;
pqr.fun();
注: 使用類成員時用成員訪問符 .
5. 類的建構函式
建構函式名 為類名
類建構函式:用於構造新的物件、將值賦給它們的資料成員
特點:不加返回型別,可以預設引數,引數名不能同成員名相同
當程式宣告物件時,會自動呼叫建構函式
例如:定義
stock::stock(const
string &co,long n,double pr)
使用(宣告變數)
顯式 : stock garment = stock("furry mason",50,2.5);
隱式 : stock garment("furry mason",50,2.5);
動態分配方法
stock *pstock = new stock("electroshock games",18,19.0);
6. 預設建構函式
如果定義了類的建構函式,那麼一定要定義預設建構函式
方法:a. 在原有的建構函式上給所有的引數提供預設值(預設引數)
b. 利用函式過載定義另乙個函式--------乙個沒有引數的函式
例如:stock();
stock::stock()
7. 析構函式
析構函式名 為類名前加 ~
是針對建構函式的沒,如果建構函式使用 new 來分配記憶體,那麼析構函式
使用 delete 來釋放記憶體
對於一般情況,編譯器會自動生成隱式的析構函式
析構函式呼叫時間根據物件的建立方式不同而相異
8. c++11 列表初始化
需要與構造函式引數列表匹配
例如:stock a = //如果部分預設引數則可預設, = 可預設
stock b = {} //對應予預設建構函式
9. 用 const 關鍵字確保函式不會修改呼叫物件
例如:
宣告: void show() const;
定義:
void stock::show() const
10.this 指標
對於涉及到另乙個物件的函式,如果要返回本身這個物件,那麼返回 return *this;
11. 物件陣列
宣告方法與建立陣列相似
例如: stock mystuff[4];
顯示初始化,呼叫建構函式
例如:stocks stocks[4] =
如果沒有被顯式初始化,那麼每個陣列元素都會執行隱式建構函式
12. 類作用域(c++ p筆記)
C 類和物件 類和物件
c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...
Java類和物件 1 簡述類和物件
一 物件導向的優點 易維護 模組化,實體被抽象成類,和同一名字空間中具有相同功能的類,我們可以在名字空間中新增乙個類而不會影響該名字空間的其他成員。擴充性 如果乙個類需要某些功能,可以在這個類中新增功能 重用 可以通過繼承減少部分 的冗餘,使乙個類中的 可以被其他類使用 二二 類和物件 類 是抽象的...
python類和物件課件 8 2 類和物件
類和物件 物件導向程式設計的2個非常重要的概念 類和物件 物件是物件導向程式設計的核心,在使用物件的過程中,為了將具有共同特徵和行為的一組物件抽象定義,提出了另外乙個新的概念 類 類就相當於製造汽車時的圖紙,用它來進行建立的汽車就相當於物件 1 類 人以類聚 物以群分。具有相似內部狀態和運動規律的實...