C ++中的參數化構造函數:工作與示例
已發表: 2021-05-27目錄
什麼是構造函數?
構造函數是類的成員函數,用於初始化類中的對象。 在C++中,當創建作為類實例的對象時,會自動調用構造函數。 因此,構造函數是類的特殊成員函數。
什麼是參數化構造函數?
參數可以傳遞給構造函數。 創建對象時,這些參數有助於初始化對象。 要在 C++ 中創建參數化構造函數,我們可以將參數添加到函數,就像它可以添加到任何其他函數一樣。 當定義構造函數的主體時,參數用於初始化對象。
C++中參數化構造函數的語法
類名_of_class{
訪問說明符(公共/受保護/私有):
成員變量
成員函數
民眾:
name_of_class(variables){ //構造函數代碼
}
// 其他函數和變量
}
語法包括具有 name_of_class,後跟包含成員函數和成員變量的訪問說明符。 所有這些都包含在構造函數代碼中,這意味著它可以在構造函數的主體中調用。
另請閱讀: C++ 的開源項目
C++ 中的參數化構造函數示例
#include <iostream>
使用命名空間標準;
類示例
{
私人的:
整數a,b;
民眾:
// 參數化構造函數
示例(int a1,int b1)
{
a = a1;
b = b1;
}
整數 getA()
{
返回一個;
}
int getB()
{
返回 b;
}
};
主函數()
{
// 調用構造函數
示例 e1(5, 10);
cout << “e1.a = ” << e1.getA() << “, e1.b = ” << e1.getB();
返回0;
}
輸出
說明:私有變量 a 和 b 在類 Example 中聲明。 使用函數 Example 聲明參數化構造函數。 它包括兩個方法getA() 和getB()。 在主類中,調用構造函數,並分配構造函數的訪問值。
C++ 中的參數化構造函數是如何工作的?
一個對像被初始化,它保存著值或對象將處理或包含的細節和參數,只要定義了 C++中的參數化構造函數。 然後可以將參數傳遞給該對象。 該過程與將值傳遞給函數非常相似。 它也類似於將參數化值傳遞給對象。
使用參數初始化構造函數主體中定義的對象。 每當聲明參數化構造函數時,這些值都應作為參數傳遞給構造函數。 這些構造函數可以顯式或隱式調用。 對象聲明的常規方式不起作用。
注意:呼叫類型-
- 顯式調用- Example e1= Example(0,10)
- 隱式調用 - 示例 e1(0,10)
結帳:面向初學者的 C++ 項目創意
C ++中參數化構造函數的用途是什麼?
參數化構造函數的使用如下:
- 構造函數重載
- 用於在初始化/創建不同對象時為不同對象的各種數據元素分配不同的值
另一個例子:
1.計算矩形面積的程序
#include <iostream>
使用命名空間標準;
// 聲明一個類
類矩形{
私人的:
雙倍長度;
雙倍寬度;
民眾:
// 創建參數化構造函數
矩形(雙 len,雙 brt){
//初始化私有變量
長度 = 長度;
寬度 = brt;
}
雙計算面積(){
返回長度 * 寬度;
}
};
int main() {
// 創建對象並初始化數據成員
矩形 rect1(10, 8.6);
矩形 rect2(8.5, 6);
cout << “矩形 1 的面積:” << rect1.calculateArea() << endl;
cout << “矩形 2 的面積:” << rect2.calculateArea() << endl;
返回0;
}
輸出
說明:在這個例子中,我們創建了一個帶兩個參數的參數化構造函數 rectangle():double len 和 double bdt。 這些參數包含用於初始化成員變量長度和寬度的值。 當我們創建 Rectangle 類的對象時,我們將成員變量的值作為參數傳遞。 我們可以在成員變量初始化的時候用calculateArea()函數計算面積。
1. 顯示學生成績
#include <iostream>
使用命名空間標準;
班級學生{
民眾:
int std_id;//數據成員
string std_name;//也是實例變量
浮動標準標記;
學生(int i,字符串 a,float b)
{
std_id = i;
標準名稱 = 一個;
標準標記 = b;
}
無效顯示()
{
cout<<std_id<<” “<<std_name:<<” “<<std_marks <<endl;
}
};
詮釋主要(無效){
學生 s1 =學生(101,“索尼婭”,89); //創建一個學生對象
學生 s2=學生(102,“Nakul”,59);
s1.display();
s2.display(); 返回0;
}
輸出
解釋:id、name 和marks 是數據成員(也是實例變量)。 學生是一個參數化的構造函數,它的對像是在主類中創建的。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
結論
構造函數只是我們可以傳遞值的特殊方法。 如果我們不將值傳遞給構造函數,則最終對象具有一些默認值。 [1] [MOU2]對象保存作為主類一部分的成員變量的方法和值。 這些值最終通過構造函數傳遞。 C++中的參數化構造函數的優點是為不同的對象分配不同的值,並且可以重載。
既然您已經了解了 C++ 中的參數化構造函數,那麼如果您想更深入地挖掘並在您的編程生涯中上升,那麼請探索印度最大的在線高等教育公司 upGrad 的課程。 您必須查看我們的全棧軟件開發計劃。
什麼是構造函數?
構造函數是類中的一種特殊方法,與類同名。 它很特別,因為在創建(實例化)類時會自動調用此方法。 如果構造函數沒有參數,則該類被實例化為空值。 構造函數執行初始化任務並初始化類的實例變量。 構造函數的主要目的是建立對象屬性的值。 它還用於執行任何只需要執行一次的操作。 構造函數通常在類中聲明為公共靜態對象,並且使用此構造函數創建對象。
一個類中可以有多少個構造函數?
如果我們談論 C++,那麼構造函數的數量是無限的。 但是,由於其他原因,例如您機器的內存限制,類的複雜性等,可能會有其他限制。因此,構造函數的數量是無限的,但構造函數的參數數量卻不是。 一個類中可以有任意數量的構造函數。 但是默認構造函數是必須的。 任何沒有默認構造函數的類都是抽像類。 抽像類不能被實例化。
什麼是面向對象編程?
面向對象編程是一種編程範式,將“對象”視為程序或計算機系統的基本構建塊。 對像是可以包含數據的軟件實體,以字段的形式,通常稱為屬性; 和代碼,以過程的形式,通常稱為方法。 面向對象的編程專注於數據及其周圍的規則,而不是像早期編程語言中常見的那樣專注於過程邏輯或控制流。 OOP 將數據作為一個整體而不是作為一組單獨的元素來處理。