C#心得与经验(一)

刚学了一点C#,感觉绝大部分和C++是一致的,上课听到C#类constructor有个小疑问,
C#是先执行默认constructor再去执行用户定义constructor,这和C++里面有点不同。可能是编译器问题,C++里如果用户定义了constructor()无参,则内建constructor不会执行。

经过和童鞋讨论,貌似就是这样。抛开编译器原因,我来验证一下。使用VS和Code::Blocks。


显然,先初始化a=0, b=0,再由Test()改变a=1。和课上讲的一致。
 


同样的类,C++程序里b输出的就是temp,说明没有执行内建constructor,直接执行了我写的constructor。
 


把constructor去掉,默认constructor会把a, b都初始化为0。
 

Bingo,貌似是我想的这样(如果不是因为编译器不同的话)。这种小问题可能被忽略,不清楚却有潜在的bug。
我不得不说C#与C++有太多相似,它们不同的地方正是我们要留心的地方。

posted @ 2015-03-24 01:43  BigBigWolf~  阅读(522)  评论(0编辑  收藏  举报