什麼是 C++ 中的構造函數重載:特徵和類型

已發表: 2021-05-24

C++是業界常用的面向對象編程語言。 C++ 是 OOP 的先驅編程語言,由 AT&T 貝爾實驗室的 Bjarne Stroustrup 於 1979 年開發 c++ 最常用的功能可能是在其中創建一個類。 在一個類中,我們可以創建類成員——方法和變量。

目錄

介紹

構造函數通常用於創建對象,或者從技術上講,創建對象的實例。 在大多數面向對象的編程語言中,它們也是重載的。 與許多編程語言一樣,構造函數的名稱是根據類的名稱預先確定的。 這限制了命名對象,因為可以有一個構造函數。 在需要多個構造函數的場景下,使用重載函數來實現。

在 C++ 中,默認構造函數沒有參數。 它們是從具有相應默認值的對象成員中實例化的。

您可以很好地了解面向對象編程中使用重載概念。

構造函數

構造函數 (ctor) 是一種編程技術,用於在基於類的面向對象編程中創建對象。 通過調用特殊用途的子例程來創建一個新對象。 它是一個類的成員函數,它反過來初始化一個類的對象。 此方法接受參數。 提供的參數由基本構造函數使用並設置成員變量。

構造函數的特徵

構造函數是類的特殊成員函數。 由於以下原因,它與通用成員函數不同:

  • 構造函數成員的範圍是公共的
  • 它與聲明類同名。
  • 名稱區分大小寫
  • 構造函數沒有返回類型。
  • 默認構造函數是隱式創建的。
  • 創建對象時,會自動調用構造函數。
  • 構造函數不是隱式繼承的。
  • 它通常對范圍修飾符有不同的規則。

構造函數的類型

默認構造函數- 具有零參數且沒有參數的構造函數。 它們是編譯器生成的隱式構造函數。

參數化構造函數是您可以傳遞參數的構造函數。 參數初始化一個已創建的對象。 只需向其添加參數即可創建參數化構造函數,類似於我們對任何其他函數所做的。 使用構造函數主體中的參數來初始化對象。 這種類型的構造函數通常用於重載,也用於初始化具有不同初始值的對象的各種數據元素。

Copy Constructor – 它是一個成員函數,用於使用同一類的另一個對像初始化一個對象。 默認情況下,編譯器為每個類創建一個複制構造函數,遵循對象之間的成員方式複制。

C++ 中的構造函數

在 c++ 中,構造函數在對象(即類的實例)創建時自動調用。

如果我們不指定構造函數,c++ 編譯器會為我們生成一個默認構造函數(不期望參數並且具有類名)。

正確編寫的構造函數使生成的對象處於有效狀態。

構造函數重載

構造函數重載是一個構造函數重載另一個構造函數的現象。

給定的構造函數可以被重載,類似於函數重載。

重載的構造函數與類的名稱相同。 但是,它在幾個論點上有所不同。 創建對象時,傳遞的參數類型決定了調用哪個構造函數。

具有不同參數的多個構造函數的可用性有助於在編程中執行不同的任務。

C++中的構造函數重載

在 C++ 中,一個類中有多個構造函數,名稱相同,但參數列表不同。 C++中構造函數重載的概念與函數重載非常相似。

通常,您應該在一個類中創建多個構造函數來為對像以不同的方式初始化成員變量。 構造函數行為不同的標準是具有不同數量的參數或不同的定位或參數的不同數據類型。

使用單個類牢固地創建對象並返回該類的新實例的構造函數被業界抽象,它創建對象但可以使用不同的類或不同的分配方案(例如對像池)以不同的方式進行。

構造函數重載如何在 C++ 中工作?

讓我們考慮如下所示的示例:

該代碼說明了c++中構造函數重載的示例

“計算”類有 2 個構造函數:

  1. 默認構造函數(沒有任何參數)
  2. 三參數構造器

在 main() 中創建了兩個對象。

1.出:

創建時,它會自動調用不帶參數的默認構造函數。 這是因為在創建對象時,沒有傳遞參數。 因此,它與 first(Default Constructor) 的定義相匹配。 這將為主類的該對象的所有三個變量分配 0 值。

2.輸出2:

當它被創建時,它會自動調用帶有 3 個參數的構造函數。 這是因為在創建對象時,只傳遞了 1 個參數。 因此,它與第二個構造函數的定義相匹配。 這將為主類的該對象分配 3 個值(作為參數傳遞)。

從世界頂級大學在線學習軟件工程課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

了解C++ 中構造函數重載的編程概念是程序員和系統設計人員的一項重要技能。 計算機和計算相關課程的學生可以提高他們的技能和技術信譽,例如 OOP 概念和代碼優化。 upGrad門戶上的資源和知識庫鼓勵這些專業人士獲得編程專業知識以在行業市場中競爭。 此外,您將有機會探索專業網絡和技能發展。

如果您有興趣了解有關全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

什麼是編程中的構造函數?

編程中的構造函數是主要目的是初始化對象和執行其他簡單任務的函數。 構造函數用於面向對象編程,這是一種流行的編程範式。 因此,面向對象的程序包含對象,這些對象又具有屬性、方法和事件。 要創建一個對象,您必須使用構造函數,並且為了能夠使用該對象,您必須實例化它。

什麼是構造函數重載?

構造函數重載意味著擁有多個同名的構造函數。 構造函數是創建對象時調用的方法。 您必須為所有構造函數使用相同的名稱,即類名。 這是通過使用不同數量的參數聲明構造函數來完成的。 如果沒有要傳遞的參數,則調用默認構造函數。 如果只有一個參數,則調用帶有單個參數的構造函數。 如果有兩個或更多參數,則調用恰好採用兩個或更多參數的構造函數。

如何使用構造函數初始化對象?

當涉及到類的初始化時,構造函數是至關重要的。 它們是一種特殊類型的函數,用於創建和初始化對象。 有時我們不想在類中創建所有字段,因為它們不是必需的。 如果我們創建所有字段,我們應該初始化所有字段。 在這種情況下,我們使用默認構造函數並根據需要初始化字段。 創建類時,可以在類中創建一個或多個構造函數。 因此,當您為該特定類創建對象時,您可以輕鬆調用該類的構造函數以及要設置的參數。 這些參數可以設置為調用其構造函數的類的字段或屬性的值。