Enter C++讓類成員欄位在初始化列表中出現的順序和他們被申明的順序保持一致

來源:互聯網
上載者:User
讓類成員欄位在初始化列表中出現的順序和他們被申明的順序保持一致,因為程式執行的時候是按照成員欄位被定義的順序來通過初始化列表進行初始化的。考慮到解構函式通常要以初始化相反的順序對乘員欄位進行銷毀,所以嚴格按照定義的順序進行初始化可以保證析構的時候只要按照定義相反的順序進行析構成員欄位,否則你的解構函式需要知道具體的成員是按照什麼順序進行初始化的。所以保持初始化列表的順序可以使得程式更容易理解。

另外關於初始化列表,類在初始化時,一般會先調用初始化列表,然後再調用constructor。
下面是這個best practice的範例:


#include "stdafx.h"

#include "TestDerive.h"

#include <iostream>

#include <limits.h>

using namespace std;

 

class WeatherCondition {

public:

    WeatherCondition(int temperature, int pressure, int moistrue):

           m_temperature(temperature),

           m_pressure(pressure),

           m_moistrue(moistrue)

    {}

private:

    int m_temperature;

    int m_pressure;

    int m_moistrue;

public:

    int GetTemperature()

    {

       return m_temperature;

    }

};

 

 

 

int _tmain(int argc, _TCHAR* argv[])

{

    WeatherCondition weatherCondition(10,1,2);

    cout<<weatherCondition.GetTemperature();

 

    return 0;

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.