|
12楼: 楼上你好,所有的程序都有封装和继承。
你写个SPI的驱动(类),这样你就可以在这个基础上不断的继承与发展下去,这些工作是你做的,
难道 C++的‘继承’是CPU依靠自己的“智慧”把代表继承下来的吗? 还不是微软的那帮程序员把代码都写好,
然后,你就可以使用它们忽悠的所谓C++‘继承’,当然不用写什么东西,
好比 按钮 ‘继承’了窗体的某些’特性‘代码。
所有的程序都有封装。
某些变量,函数如果不想告诉被其他外部程序调用,不对外公布入口就可以了,
好比上面说的SPI驱动(类), 只向外提供一个读,一个写,函数不就可以吗?
内部具体的SPI FLASH微代码操作,没必要告诉谁吧,也没必要向外提供吧,这不就是封装了吗?
我看楼上被人忽悠的迷迷糊糊的!
--------------------
十分感谢这位仁兄的指点
我想说的是,你所说的继承是软件工程管理意义上的继承,我说的是代码的无缝直接继承。就是拿来直接可以用的。我知道C这方面也有拿来很容易使用的code,但是你要向上扩展,你多多少少是要改一点code的。而C++不一样,我根本不需要管class里面是怎样的code,直接继承调用它的public函数就ok。甚至可以生成N个同样的对象,放在一个C++容器里面。
这个最直接的例子就是,C++的数据结构类,继承完了一个数据元素,直接放在容器里面,可以动态增长删除。方便着呢。虽然C语言也能做到,但是总感觉数据和代码的打包性能不如C++的好。所以你看现在很多程序员用到的基本数据类型(如队列、栈、链表、树等),极少用C来写,都用C++了。
还有C语言里面的string操作,要用到strcpy,strcat,strcmp,memcpy等叽叽歪歪的函数,而c++只要用=来赋值,用<,>,来判断哪个字符串大哪个字符串小。用==来判断字符串是否相等。用专门的字符串类也懒得管理字符串占用的内存。总之2个字,方便。。。而C语言,在这方面做得很烂。一不留神就出个内存问题。
所以只要CPU允许,我都尽量用C++的。C语言是倾城,但是C++倾国。。。。 |
|