论坛首页 编程语言技术论坛

从java转向C\c++开发要学会些什么

浏览 18668 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (17)
作者 正文
   发表时间:2009-09-27  
shendl 写道
楼主说得不对。  
   C,C++,Java是3种截然不同的语言。   要用该语言的能力去编程。  不要总是记得Java。否则你写出的C++就是Java风格的代码。而这不好。不行。

我并没说记得什么,这不是武侠小说,废掉武功练出葵花宝典。我们要记得不是语法的条条框框。我们要的思想,设计的思想。
0 请登录后投票
   发表时间:2009-09-27  
需要的是耐心,是重视。如果以为很简单,那结果会令你失望了。

举例来说,单是字符串操作,从JAVA到C++,你都可能会觉得难以适应。如果你用STL库,还好办些(不过刚学C++的话你还没功夫学STL吧),如果你不用这些库,你会发现多数情况下你要自己对字符串指针的长度与结尾负责,你会发现以前做JAVA时较多关心业务问题,现在做C++时陷进了技术细节问题上。
0 请登录后投票
   发表时间:2009-09-28  
就凭我自身经验来看,一个是 操作系统内核方面的知识要熟悉,就象winapi、宏 之类的东东,另一个就是 java确实是关注业务方面,c/c++是技术实现问题

实际操作过程中发现java的IDE比如eclipse很好用,而c/c++的IDE至今没发现一个很好用的,可能是太熟悉eclipse的操作了
0 请登录后投票
   发表时间:2009-09-28  
更‘高级’的语言,更关注的是业务
‘低级’点的语言,要更多考虑实现细节
C的字符串操作就是个典型的例子
0 请登录后投票
   发表时间:2009-09-28  
个人觉得指针
0 请登录后投票
   发表时间:2009-09-28  
mxswl 写道

java 转 c++还是容易些的,毕竟oo那一部份对于有一些功力的java coder来说是基本没问题了.

转c的话要花一些功夫. 我觉得学c要结合着操作系统,编译原理, runtime env来理解,才能有所成.
不能像玩java的时候一样,把底层都交给jvm,自己只管的oo就行.


这个帖子就这个回复有用。
0 请登录后投票
   发表时间:2009-09-29  
我觉得本质的区别在于,真正需要用C/C++的项目都是比较关注性能的,否则真的建议使用Java。既然项目关注性能,那么我们在做架构,设计和编码的时候,贯穿始终的东西都是这个:性能。那么有的时候可能我们的设计会有妥协,然后具体设计和编码的时候,对算法的要求比较高。

    其次,我觉得C/C++太关注细节,和底层操作系统结合比较紧。一般来说,一个Team里面要有几个大牛,专门做这块东西的封装。指针的使用仍然是C/C++系统里面一个常见的问题根源。按照C++的建议,对指针的使用应尽量使用智能指针(这个不一定是auto_ptr或者shared_ptr,有可能是自己封装的)。不过,实际中,很少有项目会这样做。指针的问题还是比较浪费时间的。

    再则,就是线程安全。这个最重要的是第三方库的安全和系统调用是否安全,这个在Unix/Linux上非常非常重要。

    还有就是C++多年来的一些问题。没有一个权威的日志库,没有一个权威的单元测试库,没有一个跨平台的GUI库。
我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。
0 请登录后投票
   发表时间:2009-09-29  
C++跟java相比最大的好处是速度快,C++是一门不完善的语言,发展速度极慢,java程序员向C++转换也是不得已
0 请登录后投票
   发表时间:2009-09-29  
ankyhe 写道
我觉得本质的区别在于,真正需要用C/C++的项目都是比较关注性能的,否则真的建议使用Java。既然项目关注性能,那么我们在做架构,设计和编码的时候,贯穿始终的东西都是这个:性能。那么有的时候可能我们的设计会有妥协,然后具体设计和编码的时候,对算法的要求比较高。

    其次,我觉得C/C++太关注细节,和底层操作系统结合比较紧。一般来说,一个Team里面要有几个大牛,专门做这块东西的封装。指针的使用仍然是C/C++系统里面一个常见的问题根源。按照C++的建议,对指针的使用应尽量使用智能指针(这个不一定是auto_ptr或者shared_ptr,有可能是自己封装的)。不过,实际中,很少有项目会这样做。指针的问题还是比较浪费时间的。

    再则,就是线程安全。这个最重要的是第三方库的安全和系统调用是否安全,这个在Unix/Linux上非常非常重要。

    还有就是C++多年来的一些问题。没有一个权威的日志库,没有一个权威的单元测试库,没有一个跨平台的GUI库。
我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。


1、本人喜欢log4j的c++版本 log4cplus
2、没有一个跨平台的GUI库(有一个sw库是跨所有平台的,只是你不了解)。

我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。
3、这个说的好,业务通通用java,核心通讯或服务器用c
0 请登录后投票
   发表时间:2009-09-30  
ankyhe 写道
我觉得本质的区别在于,真正需要用C/C++的项目都是比较关注性能的,否则真的建议使用Java。既然项目关注性能,那么我们在做架构,设计和编码的时候,贯穿始终的东西都是这个:性能。那么有的时候可能我们的设计会有妥协,然后具体设计和编码的时候,对算法的要求比较高。

    其次,我觉得C/C++太关注细节,和底层操作系统结合比较紧。一般来说,一个Team里面要有几个大牛,专门做这块东西的封装。指针的使用仍然是C/C++系统里面一个常见的问题根源。按照C++的建议,对指针的使用应尽量使用智能指针(这个不一定是auto_ptr或者shared_ptr,有可能是自己封装的)。不过,实际中,很少有项目会这样做。指针的问题还是比较浪费时间的。

    再则,就是线程安全。这个最重要的是第三方库的安全和系统调用是否安全,这个在Unix/Linux上非常非常重要。

    还有就是C++多年来的一些问题。没有一个权威的日志库,没有一个权威的单元测试库,没有一个跨平台的GUI库。
我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。



GUI我还真没见过 完全跨平台的的 什么库。

不改改能直接用的估计也只是个demo罢了....

C++并非写应用的首选,特别是所谓的 操作db, crud之类。光是string编码就够喝一壶的了。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics