首頁 > 後端開發 > C++ > C 建構函式中的冒號 (:) 語法如何用於成員初始化和基底類別呼叫?

C 建構函式中的冒號 (:) 語法如何用於成員初始化和基底類別呼叫?

DDD
發布: 2024-12-02 05:22:14
原創
179 人瀏覽過

How Does the Colon (:) Syntax Work in C   Constructors for Member Initialization and Base Class Calls?

理解建構函式中的冒號語法

在 C 中,建構子是在建立時初始化物件的函數。雖然建構函數名稱通常與類別名稱匹配,但它們可以具有獨特的初始化語法。建構函數語法的一個值得注意的方面是使用冒號 (:) 後跟參數列表。

此語法稱為成員初始值設定項列表,有兩個主要用途:

  • 呼叫基類建構子:
    建立派生類別時,也必須初始化其基底類別。成員初始值設定項清單可讓您呼叫基底類別的建構函數,根據需要傳遞參數。
  • 初始化資料成員:
    成員初始值設定項清單也可用於初始化非- 類別的靜態資料成員。這是透過指定資料成員名稱,後面跟著賦值運算子和參數來完成的。

例如,考慮以下程式碼:

class demo 
{
private:
    unsigned char len, *dat;

public:
    demo(unsigned char le = 5, unsigned char default) : len(le) 
    { 
        dat = new char[len];                                      
        for (int i = 0; i <= le; i++)                             
            dat[i] = default;
    }

    void ~demo(void) 
    {                                            
        delete [] *dat;                                           
    }
};
登入後複製

在此範例中,建構子有兩個參數,le 和default。成員初始值設定項清單 : len(le) 將 le 的值指派給 len 資料成員。

此外,在衍生類別newdemo 中:

class newdemo : public demo 
{
private:
    int *dat1;

public:
    newdemo(void) : demo(0, 0)
    {
     *dat1 = 0;                                                   
     return 0;                                                    
    }
};
登入後複製

成員初始值設定項列表: demo( 0, 0) 使用參數0 和0 呼叫基底類別建構子demo,初始化基類的len和預設資料成員class.

成員初始值設定項清單是初始化資料成員和呼叫基底類別建構子的便利高效方法,可增強程式碼的安全性和清晰度。

以上是C 建構函式中的冒號 (:) 語法如何用於成員初始化和基底類別呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板