《物件導向程式設計 C 》學習筆記1

2021-08-03 07:12:29 字數 1551 閱讀 9860

組織問題的方法(設計和具體語言實現);

物件,而不是控制或資料流,是我們設計和實現的焦點;

關注東西,而不是過程.

物件互相之間傳送和接收訊息;

傳送者傳遞訊息,做不做、怎麼做由接收者決定,這是「蛋圖」的核心;

訊息可能導致接收者改變狀態或返回結果;

物件是東西,對訊息做出反應;

類是東西的種類;

一切都是物件;

程式是一堆物件,互相之間通過訊息告訴別人做什麼;

每個物件都由其他物件組成;

每個物件都由型別;

有相同型別的物件可以接收同樣的訊息;

介面是接收訊息的方式;

定義在物件所在的類裡;

介面的函式:在程式作出可以拆換的東西,作用是交流和保護,可以任意改變內部的結構,外部不受影響

不是所有的東西都讓你碰;

把資料和操作放在同一物件中,資料在裡,操作在外;

隱藏資料和操作的細節;

外界僅能夠訪問公開出來那部分;

.h和.cpp檔案共同來定義乙個類;

類的宣告和屬性放在.h中;

所有的實體(定義)在.cpp檔案中.

如果乙個函式或類宣告在乙個標頭檔案,必須所有要用到它的地方或者唯一定義它的地方都要include它。

標頭檔案是設計這個類和使用這個類的人之間的約定;

編譯器會強化這個約定,使用這些函式都要宣告;

.h檔案放置宣告,.cpp檔案放置定義,他們成對出現;

include實質是把include中的文字插入到使用的檔案中去,因此include中不能包含定義,否則被多個檔案呼叫時會出錯;

可以通過extern int global把int global變為乙個申明而非定義,表明世界上有乙個叫global這個東西,然後在使用這個函式的地方加int global定義;

.cpp檔案是乙個編譯單元;

.h只能包含宣告(extern變數、函式原型、類/結構體的宣告);

#include  「」表示在當前目錄查詢;#include <>表示編譯器認定的系統目錄去找;

#include 等同於;

每個標頭檔案放乙個類的宣告;

對應的源**用相同的字首;

標頭檔案用#ifndef #define #endif圍繞起來。

成員變數:定義在類建構函式之外的,物件在成員變數就在,在類的所有成員函式可以使用這些成員變數;

引數:外面呼叫時要給函式的引數初始的值

本地變數:與函式有關,本地變數和引數的儲存屬性都是一致的,進入時才存在

所有的成員函式都有隱藏的變數this;

this是只想caller的指標

tree(int i){};tree t(12);變數的後面加上 ()表示對建構函式的呼叫;

當你的物件被消滅掉的時候用;

在建構函式前加~;

編譯器會在{}開始的地方分配{}裡面所有變數的空間;

建構函式的呼叫一直要到這個變數定義的地方才會發生,這個過程有可能會發生錯誤.

數值和結構:可以用{}初始化;

有建構函式的結構,不能直接用{}初始化,得要調建構函式.

沒有引數的建構函式就叫預設建構函式

C 學習筆記 物件導向程式設計

1.什麼是類 物件和成員?類 乙個類包含很多的物件。比如人類就是乙個類,張 三 李四等是人類的物件,這些物件擁有人類共同的功能和資料,如身高 體重 年齡等,而具體化這些資料我們可看做是人類的成員變數。所以類是由若干個變數和相關函式組成,而物件則擁有這些變數和函式。2.如何宣告乙個類?類只有先宣告才能...

C 物件導向程式設計(1)

1.類的修飾符 new 新建類,表示隱藏由基類中繼承而來的,與基類中同名的成員 public 公有,外界不受限制訪問 protected 保護類,該類及其子類可以訪問 internal 內部類,本程式的類可以訪問 private 私有類,只有該類可以訪問abstract 抽象類,抽象類是不完整的類,...

物件導向程式設計(C )學習筆記一

類 class 是對結構體struct的增強,也是用於自定義型別的。struct object class object 將關鍵字struct改為class,增加訪問修飾符public object obj obj.a 11 obj.b 12 obj.c 13.0 obj.d 14.0 class ...