原贴地址:类的成员变量初始化总结,初始化顺序,Java与C#类初始化顺序。
some experience:
学习编程要分为两个层面:第一个层面,就是撸代码,随心所欲地撸代码,撸漂亮的代码,这是一个很爽的过程。
第二个层面,就是看书,理论知识以及原理的了解掌握,语言为什么这样设计,程序运行的过程是怎样的,这是一个升华的过程,而且这里面所有的东西都 是有它自己的道理的,也就是都可以说明白的。掌握了第二层面毫无疑问是很有利于第一层面的。
仅对于C++,Java和C#而言,C++更偏向于底层,Java和C#更优雅和现代,学习它们的过程中深入的程度是不太一样的,要掌握好分寸。
关于合成的默认构造函数的问题,C++语言,我有过较为深入的研究,也总结了各种情况下编译器的行为,只有在需要添加的时候编译器才会添加完成函数调用过程
而对于Java和C#语言来讲,正如书上所讲,只要没有显式定义过构造函数,系统就会合成一个默认构造函数,且函数体为空!!!
而且,体现Java和C#语言威力的地方,远远不在于纠结于这些细节。