c 程式設計類和物件

2021-09-11 02:56:45 字數 2027 閱讀 6016

此型別的合法值是什麼?

此型別應該有什麼樣的函式和操作符

新型別的物件該如何被建立和銷毀

如何進行物件的初始化和賦值

物件作為函式引數如何以值傳遞

誰將使用此型別的物件成員

語法形式

class 類名稱

在類中宣告函式原型

可以在類外給出函式體實現,並在函式名前使用類名加以限定

也可以直接在類中給出函式體,形成內聯成員函式

允許宣告過載函式和帶預設引數值的函式

函式名與類名相同

不能定義返回值型別,也不能有return語句

可以有形式引數,也可以沒有形式引數

可以是內聯函式

可以過載

可以帶預設引數值

在物件被建立時使用特定的值構造物件,將物件初始化為乙個特定的初始狀態。

呼叫時可以不需要實參的建構函式。(參數列為空的建構函式;全部引數都有預設值得建構函式)

=default   如果程式中已定義建構函式,預設情況下編譯器不再隱含生成預設建構函式。如果此時依然希望編譯器隱含生成預設建構函式,可以使用=default

clock() =default; //指示編譯器提供預設建構函式

clock(int newh, int newm, int news); //建構函式

建構函式的實現

clock::clock(int newh, int newm, int news):hour(newh), minute(newm), second(news){}

委託建構函式使用類的其他建構函式執行初始化過程

例如:clock(int newh, int newm, int news):  hour(newh),minute(newm),  second(news)

clock(): clock(0, 0, 0)

複製建構函式是一種特殊的建構函式,其形參為本類的物件引用。作用是用乙個已存在的物件去初始化同型別的新物件。

class 類名

;類名::類(const 類名 &物件名)//複製建構函式的實現

point(const point& p) =delete;  //指示編譯器不生成預設複製建構函式

point::point(const point &p)

=delete   :指示編譯器不生成預設複製建構函式clock(const clock& p)=delete;  

複製建構函式被呼叫的三種情況

定義 乙個物件時,以本類另乙個物件作為初始值,發生複製構造;

如果函式的形參是類的物件,呼叫函式時,將使用實參物件初始化形參物件,發生複製構造;

如果函式的返回值是類的物件,函式執行完後返回主調函式時,將使用return語句中的物件初始化乙個零時無名物件,傳遞給主調函式

~clock();   不能有引數列表  clock::~clock(){}

struct 結構體名稱
union  聯合體名稱         共用儲存空間

特點成員共用同一組記憶體單元

任何兩個成員不會同時有效

enum class 列舉型別名:底層型別;

例:

enum class type ;

enum class type: char ;

enum class category ;

列舉類的優勢

強作用域,其作用域限制在列舉類中。

例:使用type的列舉值general: type::general

轉換限制,列舉類物件不可以與整型隱式地互相轉換。

可以指定底層型別

例:enum class type: char ;

#includeusing namespace std;

enum class side;

enum class thing; //不衝突

int main()

c 物件導向程式設計 類和物件(基礎)

目錄 類的資料成員和成員函式 在類體之外定義成員函式 內聯函式 物件的建立 類成員的訪問 建構函式和析構函式 複製建構函式 物件指標 this指標 靜態類成員 靜態資料成員的宣告,初始化與訪問 靜態成員函式 動態記憶體分配 class 類名 public 公有資料成員,公有成員函式 protecte...

C 類和物件 類和物件

c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...

C 高階程式設計 熟悉類和物件

step1 從最小單元spreadsheetcell了解類和物件 1 編寫類定義和類方法 考慮實際電子 允許儲存的物件可以是數字,可以是文字資料。如果接收文字資料,電子 將轉換為數字。簡單的 程式設計實現如下 spreadsheetcell.h 類方法定義 spreadsheetcell.h ifn...