VS 2017 IDE compiler option” /permissive-“

类中成员变量的声明顺序,决定了成员变量的初始化顺序。假设 Date 类中的构造函数为:

public: Date() : y_(2016), m_(9), d_(22) {}

此时,类中的成员函数,在类中的声明顺序 = 构造函数初始化列表顺序,故 y_, m_, d_ 都能被顺利的初始化为对应的值。

而当成员变量,在类中的声明顺序 ≠ 构造函数初始化列表顺序 时,

public: Date() : y_(2016), d_(22), m_(d_-13) {}

根据成员变量的声明顺序,y_ 首先被初始化为 2016,然后再初始化 m_,但由于 d_ 并未被初始化,所以 m_ 的值是随机的,最后初始化 d_ 为 22

这是因为,类的成员变量在初始化时,其初始化的顺序只与声明顺序有关,而与在初始化列表中的顺序无关。

scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

win 换行\r\n linux \n mac \r linux读取win的文件会读\r\n

算法竞赛入门经典 46页