一文帶你學(xué)習(xí)一下C++中的構(gòu)造函數(shù)
C++構(gòu)造函數(shù)學(xué)習(xí)
構(gòu)造函數(shù)是一種特殊的函數(shù),它用于在創(chuàng)建對(duì)象時(shí)初始化對(duì)象的值。所有的類(lèi)都有構(gòu)造函數(shù),但如果沒(méi)有自定義,則會(huì)使用默認(rèn)構(gòu)造函數(shù)。在本文中,我們將學(xué)習(xí)C++的構(gòu)造函數(shù)以及如何使用它們來(lái)創(chuàng)建對(duì)象。
構(gòu)造函數(shù)的基本語(yǔ)法是在聲明類(lèi)時(shí)定義,語(yǔ)法如下:
class MyClass{
public:
MyClass(); //構(gòu)造函數(shù)的聲明
private:
// 成員變量聲明
};
MyClass::MyClass(){
// 構(gòu)造函數(shù)的具體實(shí)現(xiàn)
}MyClass()是構(gòu)造函數(shù)的名稱,它與類(lèi)名相同且沒(méi)有返回類(lèi)型。構(gòu)造函數(shù)的主體用大括號(hào)包括,并進(jìn)行初始化或其它操作。
默認(rèn)構(gòu)造函數(shù)是一種不帶任何參數(shù)的構(gòu)造函數(shù),如果沒(méi)有定義任何構(gòu)造函數(shù),則編譯器將使用默認(rèn)構(gòu)造函數(shù)。例如:
class MyClass{
public:
// 默認(rèn)構(gòu)造函數(shù)
private:
// 成員變量聲明
};
MyClass::MyClass(){
// 參數(shù)為空
}下面介紹一些常見(jiàn)的構(gòu)造函數(shù)用法。
1.帶參數(shù)的構(gòu)造函數(shù)
帶參數(shù)的構(gòu)造函數(shù)允許在實(shí)例化對(duì)象時(shí)傳遞參數(shù)。例如,下面的代碼演示了如何使用帶參數(shù)的構(gòu)造函數(shù)來(lái)初始化姓名和年齡:
#include <iostream>
using namespace std;
class Person{
public:
string name;
int age;
Person(string _name, int _age) {
name = _name;
age = _age;
}
};
int main() {
Person p1("john", 18);
cout << "name: " << p1.name << endl;
cout << "age: " << p1.age << endl;
return 0;
}2.多個(gè)構(gòu)造函數(shù)
一個(gè)類(lèi)可以有多個(gè)構(gòu)造函數(shù),每個(gè)構(gòu)造函數(shù)可以有不同的參數(shù)列表。例如,以下代碼演示了一個(gè)包含兩個(gè)構(gòu)造函數(shù)的類(lèi):
#include <iostream>
using namespace std;
class Person{
public:
string name;
int age;
Person(string _name, int _age) {
name = _name;
age = _age;
}
Person() {
name = "unknow";
age = 0;
}
};
int main() {
Person p1("john", 18);
cout << "name: " << p1.name << endl;
cout << "age: " << p1.age << endl;
Person p2;
cout << "name: " << p2.name << endl;
cout << "age: " << p2.age << endl;
return 0;
}3.拷貝構(gòu)造函數(shù)
拷貝構(gòu)造函數(shù)是帶有單個(gè)參數(shù)的構(gòu)造函數(shù),它接受同一類(lèi)型的對(duì)象作為輸入,并初始化一個(gè)新的對(duì)象。例如,以下代碼演示了一個(gè)包含拷貝構(gòu)造函數(shù)的類(lèi):
#include <iostream>
using namespace std;
class Person{
public:
string name;
int age;
Person() {
name = "unknow";
age = 0;
}
Person(const Person &p) {
name = p.name;
age = p.age;
}
};
int main() {
Person p1("john", 18);
Person p2(p1);
cout << "name: " << p2.name << endl;
cout << "age: " << p2.age << endl;
return 0;
}以上就是一文帶你學(xué)習(xí)一下C++中的構(gòu)造函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于C++構(gòu)造函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++實(shí)現(xiàn)讀寫(xiě)ini配置文件的示例代碼
配置文件的讀取是每個(gè)程序必備的功能,配置文件的格式多種多樣,例如:ini格式、json格式、xml格式等。其中屬ini格式最為簡(jiǎn)單,且應(yīng)用廣泛。本文和大家分享了C++讀寫(xiě)ini配置文件的方法,需要的可以參考一下2023-05-05
如何為Qt視圖中的文字實(shí)現(xiàn)彩虹漸變效果
這篇文章主要給大家介紹了關(guān)于如何為Qt視圖中的文字實(shí)現(xiàn)彩虹漸變效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Qt具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
詳解C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之棧
這篇文章主要為大家介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之棧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
Visual?Studio?2022下載安裝與使用超詳細(xì)教程
這篇文章主要介紹了Visual?Studio?2022最新版安裝與使用教程,本文以社區(qū)版為例通過(guò)圖文并茂的形式給大家介紹Visual?Studio?2022安裝使用,需要的朋友可以參考下2022-04-04

