看了一天的资料,感觉终于算是进入到正题了,学习一下C++中的方法。先按照教程的指点,写了一个简单的例子如下:

380_使用Arduino学习C++-方法_c++

         一个函数是一个普通函数还是一个方法,很关键的一点在于它声明的位置。如果是一个方法,那么它的声明位置应该在一个结构体中。而这个方法的实现,需要增加一个结构体名称::的修饰。

         在方法实现的时候,第11行代码中用到了一个this,这个this其实是一个指向结构体的指针。其实,到了这里我多少优点疑问了,C++中指针的概念到底是消失了还是淡化了?程序的运行效果如下:

380_使用Arduino学习C++-方法_c++_02

         按照指针的用法,重新修改了print方法的实现如下:

380_使用Arduino学习C++-方法_c++_03

         测试没有问题,结果跟上面的截图一致。

         其实,这个还不是一个更简洁的实现方式。按照教程中的说法,存在一个隐式访问的方法。具体的一个方法实现如下:

380_使用Arduino学习C++-方法_编译报错_04

         测试依然没有问题,结果跟上面的运行截图结果一致。

         增加一个对象的处理方法,结构体构建修改:

380_使用Arduino学习C++-方法_c++_05

         增加相应的实现:

380_使用Arduino学习C++-方法_c++_06

         增加一个测试:

380_使用Arduino学习C++-方法_c++_07

         运行效果如下:

380_使用Arduino学习C++-方法_编译报错_08

         接下来,再增加一个方法。

380_使用Arduino学习C++-方法_构造函数_09

         这里,需要明确一下函数的种类。大致上,函数可以分为纯函数、修改器、填写方法。其中,纯函数不修改传入参数,而修改器会修改参数。填写方法是一个特殊的修改器,因为其中的一个参数初始值是空的。

         上面,新增的这个方法其实是一个纯函数。而且为了安全,限制了参数的修改。增加测试如下:

380_使用Arduino学习C++-方法_编译报错_10

         软件运行效果如下:

380_使用Arduino学习C++-方法_编译报错_11

         接下来测试一下,在这个纯函数中修改成员信息:

380_使用Arduino学习C++-方法_c++_12

         看得出,修改非法,编译报错。这种方式可以在一定程度上保护一部分我们需要保护的数据。

         最后,简单看看构造函数。其实,就是跟机构体同名的函数。

380_使用Arduino学习C++-方法_编译报错_13

         这里的返回值千万别加,否则编译报错。增加实现如下:

380_使用Arduino学习C++-方法_c++_14

         对应的,创建一个对象的时候的初始化需要做相应的修改:

380_使用Arduino学习C++-方法_编译报错_15

         测试效果:

380_使用Arduino学习C++-方法_c++_12

         简单的方法先小结到此,目前我需要极速补充的还是各种概念,不在实现。其实,有一个C的基础在了,骨架或许就在了。剩下的,首要工作其实还是要补充概念。