#2923. C++-编译-warning: 'X::yy' will be initialized after [-Wreorder]

C++-编译-warning: 'X::yy' will be initialized after [-Wreorder]

Background

Description

  1. warning: 'X::yy' will be initialized after [-Wreorder]

    #include <iostream>

    class BB{

    };

    class A : BB { public: A(); int first; int second; };

    A::A() : BB() ,second(0) ,first(1) {

    }

    using namespace std; int main(int argc, char *argv[]) { (void)argc,(void)argv; cout << "Hello World!" <<endl; return 0; }

    warning: 'A::second' will be initialized after [-Wreorder] int second; ^

这种警告真的很容易碰到。一句话--“先声明,先定义”。

为什么会有这种警告呢?原因是这样的:

以first、second两个变量为例,first,second一次声明,如果定义second要用到first这个值,而first并没有定义,那second初始化的值就可能会有问题。比如

second = first + 1;

first = 2;

这样就会有问题,给予警是在提醒程序员,这里可能出现类似以上问题。

Format

Input

Output

Samples



Limitation

1s, 1024KiB for each test case.