搞过两年JAVA,想学c++,求指教

2013-08-26 17:56:17 +08:00
 tonyzzp
从事了2年android开发,目前好像基本只会java这一门语言。。。。。
想学c++,一看书好厚一本啊!!
刚看完c primer ,也没看太细,完全没有任何实战经验。。
现在想学c++要怎么下手?

虽然我知道没有什么可以速成的。但我真的想快速入门。。求别喷。
9568 次点击
所在节点    程序员
34 条回复
sgissb1
2013-08-26 18:19:40 +08:00
人家都是c++转容易上手的语言,您可好倒过来。

这门语言是欲速则不达。和java有很大的差别。
tonyzzp
2013-08-26 18:30:02 +08:00
@sgissb1 以前在学校java se和javaee都做过课程设计,所以基本只学会了java,。 c++完全没学。。
chchwy
2013-08-26 18:46:02 +08:00
重點不是語言,是應用。否則學了也只是學個語法。您想用C++來做什麼?
fangzhzh
2013-08-26 19:20:52 +08:00
说到c++ 语法也很重要 非常重要。
felix021
2013-08-26 19:25:45 +08:00
建议是先从C语言开始学起。

Java程序员缺少的是对底层的理解,可惜的是好多java程序员就满足于此不思进取……在此恭喜LZ跳出桎梏。
sgissb1
2013-08-26 20:27:45 +08:00
@tonyzzp 你应该从基础开始,毕竟从语言分工上来说,c c++都是偏底的。

和楼上说的差不多,你先看看c。如果吃力,建议吧计算机基础课程再回顾一下。
wity_lv
2013-08-27 07:35:41 +08:00
学之前先推荐一本书 《Unix编程艺术》,之后再学学C.
jianghu52
2013-08-27 08:30:46 +08:00
呵呵。难得有人愿意学c++。其实java本身已经很博大精深了。2年时间除非你接触的都是底层项目,不然真的java都还没办法吃透吧。
holmesabc
2013-08-27 09:32:54 +08:00
我也在看C++。当然主要为了NDK,以及cocos2dx。
快速学习语法倒是可以,但标准库这个还是必须要花时间的。
c++ primer 里面的习题如果一时想不通,最好还是动手练练。当然习题这东西是用来解惑,不能指望应用上手。
感觉cocos2dx已经封的比较傻瓜了,基本可以直接写了,用这个来入门练手,个人感觉可以。

ps: 看了点C++后,真感觉那个coolshell上说的,java想来填一些C++的坑还是很有道理的。
tonyzzp
2013-08-27 10:37:24 +08:00
@holmesabc 是啊。我也是为了ndk和 2dx,虽然不太喜欢cocos2d,但没办法。。好像做游戏的都在用。。。
tonyzzp
2013-08-27 10:38:15 +08:00
@jianghu52 感觉一直在打酱油,当然不敢说精通。暂时也没那志向,只求熟练应用。
tonyzzp
2013-08-27 10:39:50 +08:00
@felix021 搞java的都不思进取吗。。被java和eclipse惯坏了,确实看其他的都不顺眼。。近几个月项目用lua,骂惨了。。。
felix021
2013-08-27 11:01:59 +08:00
@tonyzzp 我觉得跟OOP的过度宣传关系挺大的,很多Java程序员自以为会了Java,会了OOP,还有什么不能解决的呢。

记得很早以前看过一个帖子讨论Java和C/C++效率的问题,原帖已经找不到了,但是其中一段基本上跟这里说的类似:http://tech.ccidnet.com/art/3741/20050507/542505_1.html

对于不理解底层的Java程序员来说,根本没有可能认识到这种说法的逻辑错误——也就是Java在效率上的根本缺陷。

p.s. 还找到这篇 http://hi.baidu.com/sppeivan/item/7f4ab2f6af481ad043c36a3d
作者把 "C++写的JVM没有Java写的JVM快" 这样某个具体项目的结果与 "Java和C++的效率比较" 这两个东西混淆起来了。这让我想起前一段时间流传的某个C++代码(插入一个没用的1亿次循环那个)。
tonyzzp
2013-08-27 11:12:23 +08:00
@felix021 弱弱问一句,java写在jvm要跑在什么环境上。。
felix021
2013-08-27 11:27:55 +08:00
timonwong
2013-08-27 11:39:58 +08:00
@tonyzzp Java写JVM只能玩票,虽然现在有了JIT以及使用primitive types(OO,呵呵)能达到接近(或超过,看实际代码、编译器、硬件环境等)C/C++的性能,但是,一个软件是一个系统,一套生态环境各种性能损伤是会累加起来的(以下基本对JVM, .net CLR, blahblahblah都有效):
- 数据类型的内存overhead对cache line的伤害
- GC时的挂起以及Overhead(这个就是为什么基本没有靠谱的游戏引擎用Java来做的主要原因,同理还有图像、音视频处理等等等等等,在移动终端上情况尤其严重,服务器上到没啥)
sdysj
2013-08-27 12:18:51 +08:00
晕,摆脱不了问这种低级问题的最好不要再换什么语言了。
xiaoye5200
2013-08-27 12:49:17 +08:00
搞定多继承和指针就行啦。
smallghost
2013-08-27 14:43:38 +08:00
java不是很有前途吗?干嘛换C++呢?
tonyzzp
2013-08-27 15:22:47 +08:00
@smallghost android游戏现在全都在用cocos2d-x啊。没办法,再不学要被淘汰了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/80279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX