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++有太多相似,它们不同的地方正是我们要留心的地方。

转载于:https://www.cnblogs.com/funcode/p/4361611.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值