Welcome

首页 / 软件开发 / C++ / C++:类的成员变量 声明顺序 与 初始化顺序 相同

C++:类的成员变量 声明顺序 与 初始化顺序 相同2014-11-14类成员的默认初始化顺序是按照声明顺序进行, 如果使用初始化列表初始化成员变量, 则必须按照成员变量的声明顺序进行;

否则, 在变量之间交替赋值时, 会产生, 未初始化的变量去赋值其他变量;

同时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;}
输出:

420239898
作者:csdn博客 Spike_King