C++簡單構造函數的寫法


csdn主頁:https://blog.csdn.net/qq_43605085

構造函數定義:是一種特殊的方法 。主要用來在創建對象時初始化對象, 即為對象成員變量賦初始值,總與new運算符一起使用在創建對象的語句中 。特別的一個類可以有多個構造函數 ,可根據其參數個數的不同或參數類型的不同來區分它們 即構造函數的重載

 

一、構造函數的作用:初始化對象的數據成員

class Counter
{

public:
         Counter()
         {
                m_value = 0;
         }
        
private:
     
         // 數據成員
         int m_value;
}

eg:    Counter c1;

Counter類的構造函數

特點:以類名作為函數名,無返回類型

 

編譯系統為對象c1的每個數據成員(m_value)分配內存空間,並調用構造函數Counter( )自動地初始化對象c1的m_value值設置為0

 

二、構造函數的種類

1、無參的構造函數(默認構造函數)

class Complex
{        

private :
        double    m_real;
        double    m_imag;

public:
    //    無參數構造函數
    Complex(void)
        {
             m_real = 0.0;
             m_imag = 0.0;
        }
}

如果創建一個類你沒有寫任何構造函數,則系統會自動生成默認的無參構造函數,函數為空,什么都不做。
只要你寫了一個下面的某一種構造函數,系統就不會再自動生成這樣一個默認的構造函數,如果希望有一個這樣的無參構造函數,則需要自己顯示地寫出來

2、一般構造函數(也稱重載構造函數)

class Complex
{        

private :
        double    m_real;
        double    m_imag;

public:
     //一般構造函數(也稱重載構造函數)
    Complex(double real, double imag)
        {
             m_real = real;
             m_imag = imag;        
         }

一般構造函數可以有各種參數形式,一個類可以有多個一般構造函數,前提是參數的個數或者類型不同(基於c++的重載函數原理)


例如:你還可以寫一個 Complex( int num)的構造函數出來   

     

創建對象時根據傳入的參數不同調用不同的構造函數

使用上面定義的類對象來說明各個構造函數的用法:

void main()
{
        // 調用了無參構造函數,數據成員初值被賦為0.0
        Complex c1,c2;

        // 調用一般構造函數,數據成員初值被賦為指定值
        Complex c3(1.0,2.5);
        // 也可以使用下面的形式
        Complex c3 = Complex(1.0,2.5);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM