打印

请教一下大家对用c实现面向对象的编程的看法

[复制链接]
1134|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eyuge2|  楼主 | 2016-12-26 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 eyuge2 于 2016-12-26 11:03 编辑

单片机编程魔法师这本书的的后面第4章介绍了用c语言实现面向对象的程序。

这种方法在国外和国内的书中也见到过,个人感觉但是总体说还是比较少的,不是一种很流行的方法。

接触到arduino有一段时间了,作为一个8位的单片机,发现很多库都是用c++语言实现的。

是不是在国外例如美国或者欧洲国家用c++语言对单片机,甚至8位单片机编程是不是已经是一种比较普遍的现象?

在这种背景或者潮流中,再用c模仿c++来实现class是不是没有太大的意义?是不是更应该直接合理使用c++语言?

相关帖子

沙发
eyuge2|  楼主 | 2016-12-26 17:40 | 只看该作者
“Keil C对C++的处理也是转换成C来处理的。” 按道理应该是编译器将c++编译到汇编语言。
余工这样说可有什么依据?

使用特权

评论回复
板凳
潜龙出山| | 2016-12-26 18:58 | 只看该作者
自己没有尝试过用C++来开发单片机,但是在网上看到了其他网友的尝试。
是否支持C++开发,应该只与编译器有关而与单片机无关吧?如果是这样的话,MDK和IAR都是支持C++开发的,那支持的单片机种类蛮多的。
不知道是否有人真正评估过用C++会比C多占用多少资源?

使用特权

评论回复
地板
落叶行健ywm| | 2016-12-27 08:40 | 只看该作者
面向对象,是一种思想,而不是一种语法。

这句话很对。语法好学,思想要自己领悟!

使用特权

评论回复
5
eyuge2|  楼主 | 2016-12-27 09:15 | 只看该作者
“面向对象,是一种思想,而不是一种语法”
这个说法并不准确。

估计余工想表达的是“面向对象,是一种思想,而不是某一种编程语言”。

但是大家都不能否认就C语言与C++语言比较,C++更加适合表达面向对象的思想。

使用特权

评论回复
6
eyuge2|  楼主 | 2016-12-27 09:45 | 只看该作者
本帖最后由 eyuge2 于 2016-12-27 09:47 编辑

下面的话是有感而发,余工的书解决了我在编程过程中的一部分疑问,或者说指明了方向。

1.两个方法最吸引人,第一章的数据驱动程序、第二章的状态机(并行运行)

2.第三章定时器与延时器。其中延时器我觉得可以算是状态机的一种应用。
本章写得不是很深入,有点意犹未尽的感觉。哈哈,余工是不是准备出一个续集啊!

3.四章提到用c实现面向对象,算是第一章和第三章的应用,不能算一种新的魔法。

使用特权

评论回复
7
delin17| | 2016-12-27 20:07 | 只看该作者
C语言面向对象,看一下Linux的底层,就可以知会很多了。
其实重点是思想,而不在语言。
单片机上用C++, 怎么处理成员函数。还是一个类只有一个对象。
搞不清白。

使用特权

评论回复
8
eyuge2|  楼主 | 2016-12-28 09:30 | 只看该作者
delin17 发表于 2016-12-27 20:07
C语言面向对象,看一下Linux的底层,就可以知会很多了。
其实重点是思想,而不在语言。
单片机上用C++,  ...

有不少人写单片机程序,用的是汇编。
你如果让他用C语言,他也是顾虑很多。

如果你一开始接触的就是c语言编程,在单片机上使用c肯定不用想太多。

如果现在c++是一种趋势,更多是考虑在单片机环境下如何用好它,而不是考虑能不能用。

我对c++也只是知道个皮毛。希望在单片机上有过C++编程经历的人说说他们的看法。

使用特权

评论回复
9
mlmbcsz| | 2016-12-30 11:01 | 只看该作者
我也看了编程魔法师,这本书很好。就是在面对对象这块有点不能控制自己,在现在的几个项目中我想运用面向对象的思想感觉还是有点力不从心!

使用特权

评论回复
10
Simon21ic| | 2016-12-31 00:27 | 只看该作者
面向对象,不是看写代码用的语言,而是看写代码的人的思维方式

使用特权

评论回复
11
韩山童| | 2017-1-6 09:26 | 只看该作者
arduino到处是C++的痕迹,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

1366

帖子

9

粉丝