首頁 > 後端開發 > C++ > 如何正確實例化C類別物件並呼叫其建構函數?

如何正確實例化C類別物件並呼叫其建構函數?

Mary-Kate Olsen
發布: 2024-12-22 08:07:35
原創
614 人瀏覽過

How Do I Correctly Instantiate a C   Class Object and Invoke Its Constructor?

理解C 中的建構子呼叫

在C 中,建構子是特殊的成員函數,在建立類別的物件時自動執行。它們負責初始化物件的資料成員。

問題

考慮以下程式碼片段:

#include <iostream>
using namespace std;

class Class {
    public:
        Class() {
            cout << "default constructor called" << endl;
        }

        ~Class() {
            cout << "destructor called" << endl;
        }
};

int main() {
    Class object(); // Incorrect syntax
}
登入後複製

main() 函數嘗試建立 Class 類別的物件。但是,它沒有按預期呼叫建構函數。

原因

問題在於物件宣告中所使用的語法不正確:

Class object();
登入後複製

這一行宣告了一個名為object() 的函數,函數傳回一個Class 物件。要正確建立Class 類別的對象,我們應該使用以下語法:

Class object;
登入後複製

解決方案

透過刪除類別名稱後面的括號,我們可以正確地建立類別Class 的對象。聲明類別 Class 的物件。該物件將按照預期正確呼叫預設建構函數。

附加說明

  • 最令人煩惱的解析是C 中的一種現象,其中程式碼可以解釋為根據上下文,可以是函數聲明,也可以是類別聲明。
  • 為了避免這種歧義,建議遵循以下規則拇指:「始終在類別名稱後面加上括號以指示建構函式呼叫。」

以上是如何正確實例化C類別物件並呼叫其建構函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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