C++:類的成員變數 聲明順序 與 初始化順序 相同

來源:互聯網
上載者:User

類成員的預設初始化順序是按照聲明順序進行, 如果使用初始化列表初始化成員變數, 則必須按照成員變數的聲明順序進行;

否則, 在變數之間交替賦值時, 會產生, 未初始化的變數去賦值其他變數;

同時GCC, 也會發出警告, 如: 'class::m_xxx' will be initialized after [-Wreorder]

代碼:

/*  * BInsertSort.cpp  *  *  Created on: 2014年4月15日  *      Author: Spike  */      #include <iostream>  #include <string>        using namespace std;        class base {  private:      int m_i;      int m_j;  public:      base(int i) : m_j(i), m_i(m_j) {}      base() : m_j(0), m_i(m_j) {}      int get_i() { return m_i; }      int get_j() { return m_j; }  };        int main () {      base obj(98);      std::cout << obj.get_i() << std::endl              << obj.get_j() << std::endl;      return 0;  }

輸出:

4202398  98

作者:csdn部落格 Spike_King

更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/cplus/

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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