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

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

哦对了,模板那块儿还没看,但想来也不过是为了用静态语言实现动态语言的特性而创造出来的东西,用好可能不容易,但概念上确实不新鲜..
12568 次点击
所在节点    Python
87 条回复
linxy
2015-07-11 12:44:55 +08:00
C++包括
1,面向对象 (virtual继承 shared_ptr之类的
2, 模板 然而还分为type rich programming 和meta programming 还有Loki这种东西…
3,函数式 如今有lambda ,也能玩出花来
4,过程式。

感觉每一个都可以学可两三年吧。
Mirana
2015-07-11 12:55:19 +08:00
光看书就会做菜的话,我早成大厨了
jsyangwenjie
2015-07-11 12:58:19 +08:00
到你用到的时候你就知道为什么C++难学饿了
msg7086
2015-07-11 12:58:44 +08:00
光一个模板就能干死你。

概念当然都不难。一个编程语言还能有哪些概念……一个语言里实现的东西大都会散播到其他语言上去。
就说函数式风格编程,lambda表达式这些比较新的概念,c++最近也已经支持了。更不用说泛型&模板这些东西了。

然而你并不能都用好。
typcn
2015-07-11 13:04:47 +08:00
并不难,是半吊子太多了(虽然我也是?
lilydjwg
2015-07-11 13:11:11 +08:00
我也是学了 Python 之后才学得下 C++ 的,虽然并没有深入。

C++ 对于我有如下已知点我还不了解:

* boost
* shared_ptr, unique_ptr, ....
* copy constructor, move constructor, ...
* 各种位置的 const、const_cast、mutable....
* ....
wizardoz
2015-07-11 13:11:20 +08:00
难不是难在可以用它来开发项目,而是它具有的纷繁复杂的特性。如果在一个C++的团队里面开发的话你会发现各种人写出各种各样的代码。
当然如果是一个Java程序员来用C++的话,完全可以摒弃C++一些特性,像用Java一样使用C++。
我作为C程序员,可以摒弃更多的东西,当作C来使用。
lilydjwg
2015-07-11 13:13:05 +08:00
有 C 和 Python 基础之后随便看看教程,写点 C++ 小程序当然没问题,毕竟现在你可以把它当成是「带类的 C」。
bbdump
2015-07-11 13:15:03 +08:00
试试模版 各种隐式转换 虚指针 多态...这些东西没这么简单就能掌握
wizardoz
2015-07-11 13:16:33 +08:00
当然我觉得Python也挺难的,刚开始也觉得很简单。第一次接触Python,看了一下午《How to think like a computer scientist》就开始写程序了。但是后来真正想深入了解的时候,发现Python其实也没那么简单,好多概念还是不太容易理解。
birdor
2015-07-11 13:18:47 +08:00
如果能从无到有写一个 StringVector,支持所有 std::vector<string> 的接口,性能也不逊色,而且实现的过程中不用互联网,只参考 C++ 的基础文档,那就入门成功了。
est
2015-07-11 13:32:08 +08:00
觉得简单的,加上一个多线程就直接跪了。
billwsy
2015-07-11 13:33:25 +08:00
我觉得Python才难学,最近写的要疯了…
typcn
2015-07-11 13:34:21 +08:00
@lilydjwg boost 只是一个库,照着 example 用就行了,挺方便的
Clarencep
2015-07-11 15:15:30 +08:00
一千个人眼中有一千个C++。 还曾见过一个团队的C++只用不准用new只准malloc,写class只准用静态函数,不准用std的库,boost库也不用,哎~活脱脱就是那C++当C用...
womaomao
2015-07-11 15:16:49 +08:00
题主能否说出C++对象的内存模型,虚函数怎么实现多态的?
Ncer
2015-07-11 16:00:52 +08:00
当成带类的C来看当然不难
endrollex
2015-07-11 16:05:04 +08:00
C++不难,就是光C++只能撸黑屏,玩不了最流行的Web
KDr2
2015-07-11 16:07:21 +08:00
realityone
2015-07-11 16:10:40 +08:00

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

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

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

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

© 2021 V2EX