都说 c++难学,为什么我觉得大部分概念都能在 Python 中找到对应,只是要记的东西略多

2015-07-11 12:28:15 +08:00
 kevinyoung
如题。有Python和c基础,最近在看c++,坊间传闻c++非常难学,我也是提起了十二分的精神,结果看下来觉得除了语法以外没什么新东西,基本上每个概念都能在Python中找到对应,看了几个小时已经可以开始写项目了...这样科学吗?

哦对了,模板那块儿还没看,但想来也不过是为了用静态语言实现动态语言的特性而创造出来的东西,用好可能不容易,但概念上确实不新鲜..
12992 次点击
所在节点    Python
87 条回复
sgissb1
2015-07-12 10:35:10 +08:00
这个某种语言当初设计时候的分工有关

就像汇编一样,概念多简单。但写个东西试试。谁用就觉得烧脑子。
c和c++的设计,当时就是为了解决让人类能“看懂”的分工设计的。

在c/c++之前还有很多语言,都是由于种种原因用途很有针对性。
c/c++这类已经算比较偏底层(没有汇编那么底层),用起来才真能感受到难。

你觉得学的容易,用起来容易。而是你把他当作python这类解决实际的一些工程问题的语言去对待了。
lilydjwg
2015-07-12 12:40:39 +08:00
@kevinyoung 「带类的 C」么?这是 C++ 原本的设计目的啊。没见过也不知道别人都拿这句话做什么了,反正我觉得初学者把 C++ 当成带类的 C 挺好的。随着使用的深入会渐渐遇到各种 C++ 的特性,到时候学习就可以了。当然不可能一直这么做,因为现在的 C++ 早已不是以前了。
lincanbin
2015-07-12 13:31:24 +08:00
编译型语言的面向对象没有解释型的用起来爽,有时候追加个方法什么的。
oska874
2015-07-12 14:00:30 +08:00
看了附言,感觉题主只需要用到c++ 很少的一部分,所以觉得c++ 不难,那是你没有用到C++ 的精髓,只是当作超C 在用,当然觉得没啥了,但是你一旦深入了,就会发现到处都是坑。
C 也一样,语法超简单,但是用起来不简单,真正用到工程里面了会出现各种不可遇到的问题需要你去解决。
不恰当的比喻,好比给了一把菜刀,你只用来切豆腐当然觉得很切菜很简单了,但是让你用去雕萝卜,呵呵。
ChangxuBlack
2015-07-12 15:08:28 +08:00
@kevinyoung eigen就是靠模板元编程获得了变态级别的效率(BLAS库里数一数二快的了),boost的MPL非常难学。。。BOOST还有个东西叫spirit,靠模板元编程生成针对领域特定语言的编译器,这个最酷了,详见http://boost-spirit.com/home/
kamushin
2015-07-13 01:35:27 +08:00
看过effective C++和深入C++对象模型。不过没啥C++实际工程经验。
我的感受是楼主对于语言的复杂度估计还停留在语法糖数量上。
C++难不在什么模板编程,这玩意V友有多少会去写?我坦言只写过求n!的模板编程。。。
C++难学是因为它把太多东西暴露给你了。
>>>C++什么时候会给你一个默认的构造函数?
<<<在我没有写构造函数的时候?
>>>错了,C++只会在你没写构造函数且你的类成员有构造函数,基类有构造函数,有虚函数,有虚基类这四种情况下,为你产生一个空得构造函数
<<<F**K ME. Life is too short for C++ Standard, I use Python.
ChangxuBlack
2015-07-13 21:37:55 +08:00
@kamushin 嗯是的,我觉得C++的难就难在它支持多种编程范型

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

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

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

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

© 2021 V2EX