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

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

浏览 18575 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (17)
作者 正文
   发表时间:2009-09-22  
1、继续保持java平台的可移植作风: 尽量使用标准库(顺便学学STL)、开源的东西、条件编译
2、学会忍受引用和指针的混合使用
3、继续保持面向对象的管理方式
4、学会内存管理,不要想象java的内存自管理
5、不要C++\C的网络应用库很丰富,就算有java那么丰富,你的头也会大。所以学会一门脚本语言,
   来实现一些对时效没有要求,但对功能有较高要求的网络应用。
6、该要算法的时候一定要思考,没必要的别自讨苦吃。
7、还有一点,多看别人的代码,思考与java的异同。
8、最重要的,不要告诉你在学校没学过C,没有C的基础,吃的苦头可不小。
9、想到再补充,大家一起补充。。。。
   发表时间:2009-09-22  
基本是误认子弟,可以直接忽略。
0 请登录后投票
   发表时间:2009-09-22   最后修改:2009-09-22
ray_linn 写道
基本是误认子弟,可以直接忽略。

有问题请指出来,大家探讨,请保持良好的回帖作风!谢谢
0 请登录后投票
   发表时间:2009-09-22  
C++和java完全不同。

前者是现在面向对象语言。
后者是过程,OO,模板三种不同的编程形式的合体。

单就OO而言,java是接口-实现型。
C++不存在接口,多继承的时候还要考虑钻石继承,
更别担保护继承和私有继承等应用。

最主要的,我觉得在写C++的时候,思路和感觉同写C#, java完全不同。
和写C的时候也不一样。

不过,我十分同意,掌握一门或几门脚本语言对与C和C++的日常应用来说,十分必要且方便。我个人喜欢python & Ruby。

boost结合python的话,也十分方便,虽然不像java和.net那样直接可以支持多种脚本语言。
0 请登录后投票
   发表时间:2009-09-22  
我觉得像 ‘完全、我们、绝对 等’ 这样的词要慎用。
0 请登录后投票
   发表时间:2009-09-22  
smokingcat 写道
C++和java完全不同。

前者是现在面向对象语言。
后者是过程,OO,模板三种不同的编程形式的合体。

单就OO而言,java是接口-实现型。
C++不存在接口,多继承的时候还要考虑钻石继承,
---只是说接口的实现方式不一样.接口不仅仅是局限于interface这个词。
更别担保护继承和私有继承等应用。
---c++虽然对这种保护做并不优雅,同样可以用virtual\abstract 做的很好

最主要的,我觉得在写C++的时候,思路和感觉同写C#, java完全不同。
和写C的时候也不一样。
---事事不可绝对

不过,我十分同意,掌握一门或几门脚本语言对与C和C++的日常应用来说,十分必要且方便。我个人喜欢python & Ruby。

boost结合python的话,也十分方便,虽然不像java和.net那样直接可以支持多种脚本语言。

0 请登录后投票
   发表时间:2009-09-22  
第5点不知道想表达什么,看起来不大通顺的样子.
0 请登录后投票
   发表时间:2009-09-23   最后修改:2009-09-23
宏和指针,其他的影响不大。

不过很多人喜欢炫耀冷僻的语法,某些语法甚至不可移植,相关这方面内容可以参观下“国际C语言混乱代码大赛”。
0 请登录后投票
   发表时间:2009-09-23  
cyberblue 写道
宏和指针,其他的影响不大。

不过很多人喜欢炫耀冷僻的语法,某些语法甚至不可移植,相关这方面内容可以参观下“国际C语言混乱代码大赛”。


template是个很神奇的东东。。可以看看boost里头的实现...相当诡异
0 请登录后投票
   发表时间:2009-09-23  
raojl 写道
1、继续保持java平台的可移植作风: 尽量使用标准库(顺便学学STL)、开源的东西、条件编译
2、学会忍受引用和指针的混合使用
3、继续保持面向对象的管理方式
4、学会内存管理,不要想象java的内存自管理
5、不要C++\C的网络应用库很丰富,就算有java那么丰富,你的头也会大。所以学会一门脚本语言,
   来实现一些对时效没有要求,但对功能有较高要求的网络应用。
6、该要算法的时候一定要思考,没必要的别自讨苦吃。
7、还有一点,多看别人的代码,思考与java的异同。
8、最重要的,不要告诉你在学校没学过C,没有C的基础,吃的苦头可不小。
9、想到再补充,大家一起补充。。。。


1、需求驱动技术,如果要保持可移植的作风,那么肯定要牺牲些什么,牺牲的是不同平台的差异,牺牲的是不同平台的优势,除非你想做成通用库,一般的应用没有必要这么做。可移植性即使保证了,但是时间保证了吗,成本保证了吗?我们要在之间找个平衡点,而不是一味的追求移植。
2、如果你想,你完全可以不用c++的引用,你完全可以把c++的指针当做java的引用来看,最多只是多了个资源的管理问题,要确保时候释放,正确释放。
3、不能白什么是“面向对象的管理方式”,如果说是编程方式,除了面向过程和oop外,花些时间在gp上还是值得的,目前c++的gp要比java的gp强很多。
4、见2
5、还是那就话,需求决定技术,什么技术能够要求,谁的成本低,就用谁。
……
1 请登录后投票
论坛首页 编程语言技术版

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