一文帶你學習一下C++中的構造函數(shù)
C++構造函數(shù)學習
構造函數(shù)是一種特殊的函數(shù),它用于在創(chuàng)建對象時初始化對象的值。所有的類都有構造函數(shù),但如果沒有自定義,則會使用默認構造函數(shù)。在本文中,我們將學習C++的構造函數(shù)以及如何使用它們來創(chuàng)建對象。
構造函數(shù)的基本語法是在聲明類時定義,語法如下:
class MyClass{ public: MyClass(); //構造函數(shù)的聲明 private: // 成員變量聲明 }; MyClass::MyClass(){ // 構造函數(shù)的具體實現(xiàn) }
MyClass()
是構造函數(shù)的名稱,它與類名相同且沒有返回類型。構造函數(shù)的主體用大括號包括,并進行初始化或其它操作。
默認構造函數(shù)是一種不帶任何參數(shù)的構造函數(shù),如果沒有定義任何構造函數(shù),則編譯器將使用默認構造函數(shù)。例如:
class MyClass{ public: // 默認構造函數(shù) private: // 成員變量聲明 }; MyClass::MyClass(){ // 參數(shù)為空 }
下面介紹一些常見的構造函數(shù)用法。
1.帶參數(shù)的構造函數(shù)
帶參數(shù)的構造函數(shù)允許在實例化對象時傳遞參數(shù)。例如,下面的代碼演示了如何使用帶參數(shù)的構造函數(shù)來初始化姓名和年齡:
#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.多個構造函數(shù)
一個類可以有多個構造函數(shù),每個構造函數(shù)可以有不同的參數(shù)列表。例如,以下代碼演示了一個包含兩個構造函數(shù)的類:
#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.拷貝構造函數(shù)
拷貝構造函數(shù)是帶有單個參數(shù)的構造函數(shù),它接受同一類型的對象作為輸入,并初始化一個新的對象。例如,以下代碼演示了一個包含拷貝構造函數(shù)的類:
#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; }
以上就是一文帶你學習一下C++中的構造函數(shù)的詳細內(nèi)容,更多關于C++構造函數(shù)的資料請關注腳本之家其它相關文章!
相關文章
Visual?Studio?2022下載安裝與使用超詳細教程
這篇文章主要介紹了Visual?Studio?2022最新版安裝與使用教程,本文以社區(qū)版為例通過圖文并茂的形式給大家介紹Visual?Studio?2022安裝使用,需要的朋友可以參考下2022-04-04