取其糟粕,去其精华?没有指针的C++,和咸鱼有什么区别
指针,对于国内很多程序员来讲,有点原始,是上一个时代的产物。
取其糟粕,去其精华?没有指针的C++,和咸鱼有什么区别
指针,对于国内很多程序员来讲,有点原始,是上一个时代的产物。
面对对象,很好的功能,开发简便了许多,确实在快速建立生态系统时,做出巨大的贡献。
不过缺点也是非常明显的,(如果是随便的小开发玩玩,就不用讨论这个话题了):
1 底层逻辑更新时间长,甚至超过10年,一旦有小问题没处理,这个问题就会一直存在;本着能运行就不改的原则,后来的程序人员根本就不敢动。
2 基础的API越来越大,好多的功能已经不再使用了,但编译的时候,每次都要编进来,让最终的文件越来越大,好多时候,大的没有意义。
3 大量的重复对象封装,继承,修改,再继承,最后的局面是忘却了原来的对象是个什么样子。一旦无法运行了,查找与修改,那工作量,实在是酸爽。
个人感觉,指针是个好东西,可以让头脑清醒一些,不要无脑的相信现有API能够正确处理你遇上的所有情况。
可是,现在很多新出比较火的编程语言都不再强调指针的使用,反而强调数据结构和算法。
可是,现在很多新出比较火的编程语言都不再强调指针的使用,反而强调数据结构和算法。
看看基础的数学算法,指针是必须的,而且还是比较简捷的。
算法越显得高级,离底层的操作越远,出了问题,越是无从下手。
大型工程项目,一旦出了问题,大多的解决方法是重写部分的代码或是API函数,甚至整个模块。
当然,我不排斥对象操作,理由简单:方便。
但同时也不爽对象模式,理由也简单:对象就是一个黑箱,有时不知道完成者都的是什么逻辑,因为见识过一些神逻辑。
这个世界啊,无奈又欣喜... ...
看看基础的数学算法,指针是必须的,而且还是比较简捷的。
算法越显得高级,离底层的操作越远,出了问题,越是无从下手。
大型工程项目,一旦出了问题,大多的解决方法是重写部分的代码或是API函数,甚至整个模块。
当然,我不排斥对象操作,理由简单:方便。
但同时也不爽对象模式,理由也简单:对象就是一个黑箱,有时不知道完成者都的是什么逻辑,因为见识过一些神逻辑。
这个世界啊,无奈又欣喜... ...
现在C++指针,已经被一些不知所云的人搞出很多“莫须有”的概念,让入门者无从下手。
Popular Events
More
【前言】
毋庸质疑,目前来看开发deepin/UOS中的高性能软件仍是C++编程语言,但是C++编程语言对于其他编程语言开发者(Java、pytho*)来讲学习确实挺耗时间,而且指针、动态内存分配等相关内容比较多、细节也比较多,开发的难度自然就会上升。
【关于C++编程的使用和建议】
1.Deepin/UOS官方,需要针对C++确定一个大多数人能够正常使用的版本,针对其版本去砍掉一些不是很重要的特性和内容,并提供相关C++开发文档;
2.根据规范后的C++编程文档,在deepin/UOS系统中进行更多测试,让内存的调用情况在用户电脑上进行更多测试进行最终的调优;
3.测试稳定的C++代码,可进行库的重新封装,让Linux deepin的依赖也能完善;
4.通过C++源码库的重新封装成源码库,强制让deepin/UOS的开发者进行调用;
5.由于DTK开发套件是基于QT开发,而Qt的代码大量使用了C++面向对象的代码结构,我们需要减少软件开发者对指针变量的使用。比如C++11版就增加了智能指针uinque_ptr、shared_ptr、weak_ptr,这些指针都是类指针,减少了指针变量的使用。
6.除了使用智能指针、函数库等方式减少指针变量的使用外,IDE代码编辑器-Qt Creator也可以帮助代码中的指针符号的快捷自动生成实现。
比如代码中我们可以手动输入:
那么,在Qt Creator中其代码可自动补充、提示添加“*”和“&”这两种符号,并根据其函数作用域自动检测其指针使用的过程是否正确、合理,让C++程序员们能够逐渐忘掉指针的烦恼。
........
除了在软件领域对其C++语法的规范和简洁化外,硬件驱动程序也可引导其规范,让C++、QT的使用更加面向对象。