bb手摇高低滑行平台平台,您说为什么这么难学?

常来豆丁浏览或分享文档吗?
欢迎来豆丁网&&面向全球的C2C中文文档分享平台!这里有超过4亿份的和,帮助你进行学习及实践;快来体验“”,把你想学的东西上,随时随地,专注于你的个人成长!
获取验证码
已阅读并同意
扫一扫登录
密码登录在这里
按住拖动以改变该标签的上下位置
按住拖动以改变该标签的上下位置
按住拖动以改变该标签的上下位置
今日免费精品文档
按住拖动以改变该标签的上下位置
文档整理融合了近年英语四六级历年真题并标明了这些题的考试频率,让你能更好的把握..
音乐教师工作总结范文精选
按住拖动以改变该标签的上下位置
悲喜有时就在一念之间。如今出国与跨国恋越来越常见。中国姑娘远嫁他国甚至变成潮流。而随着这一潮流的盛行,随之而来的风险应该引起警惕。“中国女孩在海外排队等待死刑”这样的新闻令人伤心。放着国内的好日子不过,找一个非洲男友,帮他运毒,交往过程中还要自己掏腰包倒贴。无论是为了爱情,还是为了摆脱现有生活,值得吗?来看看她们的故事。
按住拖动以改变该标签的上下位置
按住拖动以改变该标签的上下位置
豆丁1秒调查:
你想把豆丁推荐给你的朋友或者同事吗?湿疣为什么那么难治愈呢
湿疣为什么那么难治愈呢
(C)2017 列表网&琼ICP备号-12&增值电信业务经营许可证B2-&扫描下载APP
百度随心听
不用找歌直接听!
01020304050607080910
01020304050607080910
百度音乐U榜01020304050607080910
经典老歌榜
01020304050607080910
网络歌曲榜
01020304050607080910
01020304050607080910
华语男歌手| 华语女歌手| 华语组合| 原创音乐人|
&2018 Baidu
微信扫一扫精选音乐每日推送!都说 c++难学,为什么我觉得大部分概念都能在 Python 中找到对应,只是要记的东西略多
12:28:15 +08:00 · 7050 次点击
如题。有Python和c基础,最近在看c++,坊间传闻c++非常难学,我也是提起了十二分的精神,结果看下来觉得除了语法以外没什么新东西,基本上每个概念都能在Python中找到对应,看了几个小时已经可以开始写项目了...这样科学吗?
哦对了,模板那块儿还没看,但想来也不过是为了用静态语言实现动态语言的特性而创造出来的东西,用好可能不容易,但概念上确实不新鲜..
第 1 条附言 &·&
00:52:21 +08:00
统一回复一下:把c++当成带类的c xxxx 这样的说法
我看c++就是因为用c写面向对象太蛋疼了,还要每次实现一些标准库里应该有的东西,所以至少现在c++对我来说就是带类还有标准库的c而已。
我不明白的是这样为什么就应该被鄙视了,我们学习变成语言难道不是为了解决问题。把c++当成带类的c可以让我写出能解决我的问题的代码,这不就够了吗?难道非得把十八般武艺都用在一个项目里才行?
另外也有朋友提到团队协作的时候如果大家各凭喜好地用不同特性写是没法合作的,所以我觉得给大家限定一个子集(比如只用到面向对象部分的特性)可能是个不错做法。
87 回复 &| &直到
21:37:55 +08:00
& & 12:44:55 +08:00
C++包括
1,面向对象
(virtual继承
shared_ptr之类的
2, 模板 然而还分为type rich programming 和meta programming
还有Loki这种东西…
3,函数式
如今有lambda ,也能玩出花来
4,过程式。
感觉每一个都可以学可两三年吧。
& & 12:55:19 +08:00
光看书就会做菜的话,我早成大厨了
& & 12:58:19 +08:00
到你用到的时候你就知道为什么C++难学饿了
& & 12:58:44 +08:00
光一个模板就能干死你。
概念当然都不难。一个编程语言还能有哪些概念……一个语言里实现的东西大都会散播到其他语言上去。
就说函数式风格编程,lambda表达式这些比较新的概念,c++最近也已经支持了。更不用说泛型&模板这些东西了。
然而你并不能都用好。
& & 13:04:47 +08:00
并不难,是半吊子太多了(虽然我也是?
& & 13:11:11 +08:00
我也是学了 Python 之后才学得下 C++ 的,虽然并没有深入。
C++ 对于我有如下已知点我还不了解:
* boost
* shared_ptr, unique_ptr, ....
* copy constructor, move constructor, ...
* 各种位置的 const、const_cast、mutable....
* ....
& & 13:11:20 +08:00
难不是难在可以用它来开发项目,而是它具有的纷繁复杂的特性。如果在一个C++的团队里面开发的话你会发现各种人写出各种各样的代码。
当然如果是一个Java程序员来用C++的话,完全可以摒弃C++一些特性,像用Java一样使用C++。
我作为C程序员,可以摒弃更多的东西,当作C来使用。
& & 13:13:05 +08:00
有 C 和 Python 基础之后随便看看教程,写点 C++ 小程序当然没问题,毕竟现在你可以把它当成是「带类的 C」。
& & 13:15:03 +08:00
各种隐式转换
多态...这些东西没这么简单就能掌握
& & 13:16:33 +08:00
当然我觉得Python也挺难的,刚开始也觉得很简单。第一次接触Python,看了一下午《How to think like a computer scientist》就开始写程序了。但是后来真正想深入了解的时候,发现Python其实也没那么简单,好多概念还是不太容易理解。
& & 13:18:47 +08:00
如果能从无到有写一个 StringVector,支持所有 std::vector&string& 的接口,性能也不逊色,而且实现的过程中不用互联网,只参考 C++ 的基础文档,那就入门成功了。
& & 13:32:08 +08:00
觉得简单的,加上一个多线程就直接跪了。
& & 13:33:25 +08:00 via iPhone
我觉得Python才难学,最近写的要疯了…
& & 13:34:21 +08:00
@ boost 只是一个库,照着 example 用就行了,挺方便的
& & 15:15:30 +08:00
一千个人眼中有一千个C++。 还曾见过一个团队的C++只用不准用new只准malloc,写class只准用静态函数,不准用std的库,boost库也不用,哎~活脱脱就是那C++当C用...
& & 15:16:49 +08:00
题主能否说出C++对象的内存模型,虚函数怎么实现多态的?
& & 16:00:52 +08:00
当成带类的C来看当然不难
& & 16:05:04 +08:00
C++不难,就是光C++只能撸黑屏,玩不了最流行的Web
& & 16:07:21 +08:00
& & 16:10:40 +08:00
@ 已经有了
& & 16:13:03 +08:00
talk is cheap, show me the code
& & 16:19:40 +08:00 via Android
找个好工程
如android的binder机制实现原理
里面的虚函数跳来跳去 对虚函数表没个概念你根本看不懂
& & 16:26:31 +08:00
现在都面向搜索引擎编程了,用什么语言都一样
& & 16:33:50 +08:00
模板元编程在Python里有什么对应?
& & 19:30:35 +08:00 via Android
cxx的精髓在于RAII
& & 19:47:00 +08:00
@ cxx的精髓在于RAII
这个说法有什么权威出处吗?还只是你自己感悟?
& & 20:07:40 +08:00
把东西写出来很简单,但是要能稳定运行,要各种安全检查有很多事要做呢
& & 22:31:26 +08:00
楼主给大家讲讲虚继承时,对象模型建立过程吧!
& & 22:34:33 +08:00
我用C++就是当做有类的C来用,那是相当容易,分分钟让我觉得我用C的结构体都可以创造出C++了。
& & 22:49:29 +08:00
只是会了 c with class 而已
& & 22:54:09 +08:00
个人觉得,你学会使用它并不难
你用它去实现90%的应用需求也都很简单
但是,这是一个可以翻出各种花样的语言
你不可能一辈子不跟别人合作开发
你不可能一辈子不用别人的轮子
你也不可能让别人不玩出花样
要跟各种花样的代码去合作整合时候
看了他们的代码我怎么觉得自己什么都不会。
& & 00:16:29 +08:00
@ 正好在隔壁知乎看轮大的答案,怎么跟你说的一模一样啊。
这几项确实每一样都够看个几年的,但其实有很多东西都是语言无关的,比如面向对象或者函数式的思想都可以抽出来考量,也可以在其他语言下学习,所以都算作c++的范畴我觉得有点不公平。
& & 00:17:15 +08:00
@ 所以要使劲儿造轮子啊
& & 00:21:25 +08:00
@ 肯定是这样的。不过正经写项目的话还有一层复杂度在架构设计上,我觉得这也不能算是c++难吧。
另外一般写项目应该会把使用到的特性限定在一个范围内,所以没有人敢说自己精通c++但不妨碍拿一个子集来写有用的项目吧。
& & 00:22:04 +08:00 via Android
@ 因为刚好看到他答案,参考一下喽~
& & 00:25:24 +08:00
@ 嗯,模板确实还没来得及看,不过我理解模板的作用一个是实现动态语言比如多态这样的特性,一个是提供一个比c的macro更健康的元编程途径。
用纯c做这些事情的话怎么看都是在hack,c++虽然试图提供一个更好的法子,但用起来肯定不可能舒服了。
& & 00:25:43 +08:00
& & 00:28:32 +08:00
@ 感觉c++这些边边角角的地方确实多,一开始我都跳过去了,回头有时间再慢慢磨吧..
& & 00:30:05 +08:00
@ 团队协作的话我记得有人提过他们连编码风格都要统一一下的,所以难道不应该对大家用到的特性做一个约束吗?
& & 00:34:08 +08:00
@ 不知道为什么大家都爱那这句说事儿。
我看c++就是因为用c写面向对象太蛋疼了,还要每次实现一些标准库里应该有的东西。所以至少现在c++对我来说就是带类还有标准库的c,so what?我觉得很好用,能解决我的问题,这不就够了?学语言又不是为了装...
& & 00:35:55 +08:00
@ 嗯,Python确实包罗万象,我其实花了一两年在看Python,甚至还看了Python的源码,结果涨的是c的功力..
& & 00:37:13 +08:00
@ 多线程/进程 模型是独立于语言之外的概念吧,把这个也算在c++的复杂度里我觉得不公平。
& & 00:37:54 +08:00
@ 我觉得你可能不是觉得Python难学,而是实际写项目的时候动态语言的特性会出一些很奇怪的问题..
& & 00:37:55 +08:00 via Android
其实可以看看Rust
& & 00:39:56 +08:00
@ 我觉得这样或许有道理,如果没法保证团队的人都能用c++的特性写出质量足够的代码的话,那么不如限制的死一点当c用好了,这样至少保证写出的项目的质量。
& & 00:42:29 +08:00
@ 才开始看两三天,这些东西还没来得及看。
不过我试过用c实现面向对象系统,内存模型和虚函数这些东西想来也玩不出什么新花样来。
& & 00:42:52 +08:00
屎难吃,并不代表吃屎是种伟大的能力。
& & 00:42:59 +08:00
@ 嗯,一个猜想,不一定对。
& & 00:52:54 +08:00
@ 见附言。
& & 00:53:25 +08:00
不过c++还能写gui的吧
& & 00:54:58 +08:00
@ 呃,被你将军了,确实没什么拿得出手的code...
& & 00:56:05 +08:00
@ 等下,android的应用不是用java写的?
& & 00:57:46 +08:00
@ Python的class可以用type函数在运行时生成,至于个中attributes和methods也可以在运行时绑定,不知道这是不是你要的?
& & 01:00:24 +08:00
@ bingo。但代码健壮性的部分总也不能算作是c++的内容吧?
& & 01:01:03 +08:00
@ 还没来得及看,随后看了以后如果有机会我就写一个帖子。
& & 01:02:20 +08:00
@ 确实。只有面向对象部分的话不难。
& & 01:02:39 +08:00
@ 见附言。
& & 01:05:54 +08:00 via Android
插一句。其实多条回复可以放在一层楼的…
& & 01:07:38 +08:00 via Android
回复楼主那个统一回复:虽然我没写过大项目,但是我觉得c+class就能搞定的项目算不上是项目,顶多算教材课后题吧
& & 01:09:54 +08:00
@ 是同时@多人吗?
& & 01:12:04 +08:00
@ 嗯,我平时也就写一些模型的模拟,几千行就撑死了,确实算不上项目。
比较好奇,如果真是在写项目的话会用到那些特性?
& & 01:12:32 +08:00
@ 不是,这个和模板元编程不一样。。。模板元编程可以在编译时期完成类型推导乃至数值计算,以提升程序执行效率。。。模板元编程博大精深,最经典的应用是eigen和boost。。。目前没有其他语言有C++这么强大的模板元编程吧?
& & 01:14:03 +08:00
@ boost的spirit和mpl你觉得如何呢?
& & 01:17:20 +08:00
@ 模板的作用更多的体现在编译,而不是执行。。。可以看看《C++ Templates》
& & 01:18:22 +08:00
lz去看看modern c++ design这本书试试把。
& & 01:20:57 +08:00
@ 比如这样。
当然一般只用在比较短的回复上,不至于把页面拉得很长,看起来轻松点。
长回复还是放单条好。
& & 01:24:21 +08:00
@ 我明白你的意思。模板元编程无非就是为了让c++这种静态语言也具备多态以及元编程能力,只不过到底还是静态语言,所以很多工作要在编译期完成,但不管怎么样写起来和动态语言很像了目的就达到了。
& & 01:25:56 +08:00
@ 书单一大堆,但这两年都不确定有时间看了...毕竟主业还是看论文发论文....但还是谢谢
& & 01:30:12 +08:00
@ 以语言论项目大小是个很没意义的事儿。
& & 01:30:13 +08:00
@ Nop,不仅仅是让C++具有动态特性哦。。。。http://cryp.to/prime-sieve/比如这个例子中,虽然是模板编程,但实际做的是在编译时期算出所有的素数。。。嗯,模板元编程的另一个作用就是把一些数值运算从运行时移到编译时由编译器计算,这样的程序效率是无解的(嗯你不能跟打表法比效率啊)。。。这是模板元编程的高级应用了——在编译期完成数值计算乃至部分程序逻辑功能。。。我觉得这个角度来讲C++不能被动态语言取代吧
& & 01:33:54 +08:00
@ 受教了。这样提前就算好的做法确实跟作弊一般,嘿嘿。
& & 04:58:52 +08:00 via Android
@ 什么鬼喵…我这里早就C++做基础可以跑Webkit做界面再底层HTTP Push各种视频音频照片控制机器人了喵…说不能的是等着脸肿喵?
& & 06:39:31 +08:00 via Android
难是相对的,你也说了要记的东西多了,用起来就更复杂了,只有到真正用到的特性时,你才会明白的,光看语法那是小学生。
& & 07:39:09 +08:00
@ 就跟python没有函数式编程似得,好像支持的比C++还早还好吧
& & 07:51:06 +08:00 via Android
auto和static都不同
& & 07:52:03 +08:00 via Android
表达式也不同
& & 07:53:14 +08:00 via Android
数组也不同。。。
& & 08:44:12 +08:00
@ 我就是拿python的函数式和lambda举例子的啊?
我说现在连C++也开始支持了,有什么问题么……
& & 09:14:26 +08:00
其实楼主想多了。
问题不在语言上,你没有实际业务来考量两个语言当然是从语法上啊。
当你处理高并发环境下的TCP连接问题时。眼看着连接服务器就要扛不住了的时候。
当你处理信号,大规模加密解密,视频,图形,矩阵,(Intel IPP 可针对CPU型号优化,虽然有SciPY依然酸爽)
当你处理HTTP业务时。C++就会变得很酸爽。
当你做数据可视化的时候(Python各种方案,各种方便各种爽,但是C++我只了解Cern ROOT晦涩难懂)
当你了解ICPC的时候,当你知道MIC这种性能怪物的时候。
这两种语言的区别就是各花入各眼了。
不必纠结,多做了解,多跟实战工程师聊聊Case你就不会这么纠结了。
比如说银行用的TCP连接是怎么做的技术细节这些,别人集群都干什么了。
海尔等这种大公司的企业级应用是中心化的还是分布式的?怎么处理的?
接触语言时千万不要忘记业务。
希望能帮到楼主,祝楼主武运昌盛。
& & 09:38:38 +08:00 via iPad
可以去看effect 系列,了解各种坑
& & 10:35:10 +08:00
这个某种语言当初设计时候的分工有关
就像汇编一样,概念多简单。但写个东西试试。谁用就觉得烧脑子。
c和c++的设计,当时就是为了解决让人类能“看懂”的分工设计的。
在c/c++之前还有很多语言,都是由于种种原因用途很有针对性。
c/c++这类已经算比较偏底层(没有汇编那么底层),用起来才真能感受到难。
你觉得学的容易,用起来容易。而是你把他当作python这类解决实际的一些工程问题的语言去对待了。
& & 12:40:39 +08:00
@ 「带类的 C」么?这是 C++ 原本的设计目的啊。没见过也不知道别人都拿这句话做什么了,反正我觉得初学者把 C++ 当成带类的 C 挺好的。随着使用的深入会渐渐遇到各种 C++ 的特性,到时候学习就可以了。当然不可能一直这么做,因为现在的 C++ 早已不是以前了。
& & 13:31:24 +08:00 via Android
编译型语言的面向对象没有解释型的用起来爽,有时候追加个方法什么的。
& & 14:00:30 +08:00
看了附言,感觉题主只需要用到c++ 很少的一部分,所以觉得c++ 不难,那是你没有用到C++ 的精髓,只是当作超C 在用,当然觉得没啥了,但是你一旦深入了,就会发现到处都是坑。
C 也一样,语法超简单,但是用起来不简单,真正用到工程里面了会出现各种不可遇到的问题需要你去解决。
不恰当的比喻,好比给了一把菜刀,你只用来切豆腐当然觉得很切菜很简单了,但是让你用去雕萝卜,呵呵。
& & 15:08:28 +08:00
@ eigen就是靠模板元编程获得了变态级别的效率(BLAS库里数一数二快的了),boost的MPL非常难学。。。BOOST还有个东西叫spirit,靠模板元编程生成针对领域特定语言的编译器,这个最酷了,详见http://boost-spirit.com/home/
& & 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.
& & 21:37:55 +08:00
@ 嗯是的,我觉得C++的难就难在它支持多种编程范型
& · & 2139 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 75ms · UTC 13:32 · PVG 21:32 · LAX 06:32 · JFK 09:32? Do have faith in what you're doing.bb平台 组织行为学 选择题库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
bb平台 组织行为学 选择题库
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩19页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 学历高低排序 的文章

 

随机推荐