关于C++的点子
关于C++的想法
这几天在把一个网络程序由C语言改成C++.
我真是
第一.我是一只C++菜鸟,菜到几年前看过几天书的那种,只是在照着mango的code在抄.通过不断的google及问坛子上的达人,从中也学到不少东西.主要是操作符重载之类的,以及对事物的封装的一个概念.
第二.我发现C++为了实现那个什么自我封闭或说是为了安全.不知道要多加多少垃圾代码.而且C++喜欢对类进行赋值操作,强制转换什么的.而这操作又是个危险份子,又得加大段的代码. .. 我在为CPU滴血啊.
第三.感觉C语言写挺好的.把结构体,回调函数一整好,程序照样有模有样,而且关键是逻辑清清.
求大神给精神支持.... 给我些继续改写下去的理由
.
------解决方案--------------------
我好奇怪哦!
能用 C 简单解决的东西,干嘛非要用 C++。
真是吃多了。
C++ 是给需要用 C++ 的人用的。
------解决方案--------------------
这个语法未必好。标准C++貌似用的很少。
如果用过MFC,就会知道MFC的GDI对象类全都有operator 转到句柄的操作,CString和STL string亦可见。
可参见boost::shared_ptr如何支持if(sp)这种语法,more effective c++上亦有提有何利弊
------解决方案--------------------
呵呵 说C++繁琐 是因为你写的程序太小了。。你要是写个十几万行的代码(基本上正常的公司的商业软件都是这些) 当程序一大。。你会发现。。用C 实在是太繁琐了。。。还是C++好。。。各种方便
------解决方案--------------------
记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!”
做个可能不太恰当的比喻:
人想让狗帮忙逮只兔子,可是人说话狗听不懂,于是人发明了一种介乎人言和狗语之间的语言,即口令。
人想让电脑帮忙做计算,可是人话电脑听不懂,于是人发明了一种介乎人言和汇编机器码之间的语言,即C语言。
人对狗的口令得让人容易学、也得让狗容易懂。
C语言同样得让人容易学、也得让电脑容易懂。
相比之下C++、Java就是人学得费劲、电脑也经常闹不懂。
------解决方案--------------------
操作符重载是语法糖。
动态分配是7x24小时稳定工作的敌人。
------解决方案--------------------
C++是趋势。
------解决方案--------------------
在你系统地学习了C++之后再考虑这个活。
现在,老老实实停下。你做得越多就错得越离谱。
------解决方案--------------------
老老实实学C++
------解决方案--------------------
1年。速则不达。
等不起的话就改行java、c#
------解决方案--------------------
你还只是看得懂而已,还有救。如果是已经写得出,才是难救了。
《C++ primer》第四版,先啃完了再说吧。后面接着要看的书还厚着呢。
------解决方案--------------------
一个不懂继承和多态的C程序员号称能看懂C++代码,这个C++代码是不是就是单纯把printf换成cout的C代码啊?
萝卜青菜各有所爱,尺有所短寸有所长,在纯C构建的Linux面前,我真不知道怎么有人敢说C不能用来做大软件
每门语言都有自己的特点。C++相比C,它的特点就在于面向对象上。楼主说自己看到派生就不看了?好么,不看继承不看多态,只知道封装——那你眼中的C++类,不就是带个函数的C结构体么?
别扯什么封装降低效率这种笑话了,C++编译器没那么傻,编译出来的代码也许比纯C的代码效率要低一些,但只要功能类似,差不了太多。
反正从这帖子来看,楼主对C++的了解就是“把各种东西打成包,然后管这个包叫对象”。
建议楼主别做无用功了,按你从C语言培养出来的面向过程的思路,C++语言在你手中就是个换了一些函数换了一些语法的C语言。然后你还在那里嫌书写麻烦效率太低,你写的不爽程序也没变得更好,何苦呢。
------解决方案--------------------
把c改为c++通常是出于设计上的考虑,甚至类似于重构,它和几行代码或者某个类没太大关系,生搬硬套会搞成一堆浆糊,
拿你改写c网络程序为c++来说,个人觉得要胜任这个工作,不但需要熟悉c++的各项细节,而且面对一个你需要改写的模块,能够快速地在脑海中浮现设计思路及uml图。换句话说,这是一个c++设计师要做的事。多看国外c++大师们的代码,你会发现一个不一样的c++。
楼上的taodm大神已经算是客气且保守估计了,聪明好学的短短两三年也不过入门而已
------解决方案--------------------
这几天在把一个网络程序由C语言改成C++.
我真是
第一.我是一只C++菜鸟,菜到几年前看过几天书的那种,只是在照着mango的code在抄.通过不断的google及问坛子上的达人,从中也学到不少东西.主要是操作符重载之类的,以及对事物的封装的一个概念.
第二.我发现C++为了实现那个什么自我封闭或说是为了安全.不知道要多加多少垃圾代码.而且C++喜欢对类进行赋值操作,强制转换什么的.而这操作又是个危险份子,又得加大段的代码. .. 我在为CPU滴血啊.
第三.感觉C语言写挺好的.把结构体,回调函数一整好,程序照样有模有样,而且关键是逻辑清清.
求大神给精神支持.... 给我些继续改写下去的理由
------解决方案--------------------
我好奇怪哦!
能用 C 简单解决的东西,干嘛非要用 C++。
真是吃多了。
C++ 是给需要用 C++ 的人用的。
------解决方案--------------------
这个语法未必好。标准C++貌似用的很少。
如果用过MFC,就会知道MFC的GDI对象类全都有operator 转到句柄的操作,CString和STL string亦可见。
可参见boost::shared_ptr如何支持if(sp)这种语法,more effective c++上亦有提有何利弊
------解决方案--------------------
呵呵 说C++繁琐 是因为你写的程序太小了。。你要是写个十几万行的代码(基本上正常的公司的商业软件都是这些) 当程序一大。。你会发现。。用C 实在是太繁琐了。。。还是C++好。。。各种方便
------解决方案--------------------
记不得哪位C++大牛在哪本学习C++的书的前言里面说过
“用C语言1000行源码能完成的工作千万不要用C++重写!”
做个可能不太恰当的比喻:
人想让狗帮忙逮只兔子,可是人说话狗听不懂,于是人发明了一种介乎人言和狗语之间的语言,即口令。
人想让电脑帮忙做计算,可是人话电脑听不懂,于是人发明了一种介乎人言和汇编机器码之间的语言,即C语言。
人对狗的口令得让人容易学、也得让狗容易懂。
C语言同样得让人容易学、也得让电脑容易懂。
相比之下C++、Java就是人学得费劲、电脑也经常闹不懂。
------解决方案--------------------
操作符重载是语法糖。
动态分配是7x24小时稳定工作的敌人。
------解决方案--------------------
C++是趋势。
------解决方案--------------------
在你系统地学习了C++之后再考虑这个活。
现在,老老实实停下。你做得越多就错得越离谱。
------解决方案--------------------
老老实实学C++
------解决方案--------------------
1年。速则不达。
等不起的话就改行java、c#
------解决方案--------------------
你还只是看得懂而已,还有救。如果是已经写得出,才是难救了。
《C++ primer》第四版,先啃完了再说吧。后面接着要看的书还厚着呢。
------解决方案--------------------
一个不懂继承和多态的C程序员号称能看懂C++代码,这个C++代码是不是就是单纯把printf换成cout的C代码啊?
萝卜青菜各有所爱,尺有所短寸有所长,在纯C构建的Linux面前,我真不知道怎么有人敢说C不能用来做大软件
每门语言都有自己的特点。C++相比C,它的特点就在于面向对象上。楼主说自己看到派生就不看了?好么,不看继承不看多态,只知道封装——那你眼中的C++类,不就是带个函数的C结构体么?
别扯什么封装降低效率这种笑话了,C++编译器没那么傻,编译出来的代码也许比纯C的代码效率要低一些,但只要功能类似,差不了太多。
反正从这帖子来看,楼主对C++的了解就是“把各种东西打成包,然后管这个包叫对象”。
建议楼主别做无用功了,按你从C语言培养出来的面向过程的思路,C++语言在你手中就是个换了一些函数换了一些语法的C语言。然后你还在那里嫌书写麻烦效率太低,你写的不爽程序也没变得更好,何苦呢。
------解决方案--------------------
把c改为c++通常是出于设计上的考虑,甚至类似于重构,它和几行代码或者某个类没太大关系,生搬硬套会搞成一堆浆糊,
拿你改写c网络程序为c++来说,个人觉得要胜任这个工作,不但需要熟悉c++的各项细节,而且面对一个你需要改写的模块,能够快速地在脑海中浮现设计思路及uml图。换句话说,这是一个c++设计师要做的事。多看国外c++大师们的代码,你会发现一个不一样的c++。
楼上的taodm大神已经算是客气且保守估计了,聪明好学的短短两三年也不过入门而已
------解决方案--------------------