381_使用Arduino学习C++-构造函数

         全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp

         前面的方法小结中已经提到了构造函数,但是这个使用似乎还是有更深层次的技巧。搜集了一点资料看了下,简单做一点测试和小结。

         使用上一次的测试代码做一下修改,我们先实现一个比较简答的结构体描述。代码如下(部分还会用到的信息,保留成了注释):

381_使用Arduino学习C++-构造函数_第1张图片

         接下来,尝试创建两个对象:

381_使用Arduino学习C++-构造函数_第2张图片

         测试结果如下:

381_使用Arduino学习C++-构造函数_第3张图片

         两个结果都在意料之中,第一个是局部变量且没有初始化,因此数值是不确定的;第二个则是进行了初始化的对象,能够按照我们的意图获得相应的属性。

         接下来,尝试增加1个构造函数。

381_使用Arduino学习C++-构造函数_第4张图片

         这样其实会报错,上次的小结中已经明确过。

381_使用Arduino学习C++-构造函数_第5张图片

         报错的原因其实就是构造函数没调用,同时,原来使用大括号赋值的方法不可用了。这时候,必须使用构造函数进行初始化。

         修改如下:

381_使用Arduino学习C++-构造函数_第6张图片

         运行效果:

381_使用Arduino学习C++-构造函数_第7张图片

         这个构造函数也是支持重载的,因此如果设计一个无参数的构造函数就可以回到之前的定义方式。修改如下:

381_使用Arduino学习C++-构造函数_第8张图片

         这时候,测试代码修改如下:

381_使用Arduino学习C++-构造函数_第9张图片

         编译通过,运行结果如下:

381_使用Arduino学习C++-构造函数_第10张图片

         不同于第一次测试,里面的信息不再是不确定的。这的确是一个很好的特性,很多时候可以省去多变量的初始化操作。当然,初始值也不一定必须是0,比如修改成6 6 6之后的测试效果:

381_使用Arduino学习C++-构造函数_第11张图片

         这是一个不错的语言属性,这算是这次学习中学到的比较有价值的知识之一了。

你可能感兴趣的:(C++,Arduino)