Soft_Job 板


LINE

※ 引述《joeywayi (拉拉拉吃屎啦)》之铭言: : 如题 : 想请问各位攻城湿 : 因为我自己是学习c++入门的 : 觉得比起java友善很多 : 常常听到说c++很难 : 这个是真的吗? C跟C++是完全不同的语言(无误 C++是个很大很大的坑(相比JAVA/.NET) C的圣经 The C Programming Language 很薄一本 看完也懂了八九成,写纯C你不用看太多书 C++公认的圣经 C++ Primer 厚厚一本 看完之後你更不懂了,写C++书看不完 C跟C++最简单的差异包含 1.记忆体管理 //这是C的写法 int *ptr = malloc(sizeof(int)); //配置记忆体 free(ptr);//释放记忆体 //这是C++的写法 int *ptr = new int(100);//配置记忆体 delete a;//释放记忆体 而C++的new 跟delete又会影响 建构式(constructor)跟解构式(destructor)的呼叫 在C/C++中记忆体管理,是很重要的事情,没弄好就会造成记忆体被占用 2. 物件导向(Object-oriented) 把所有方法、函式都模组化,并且有封装、继承、多型、抽象的概念(详细自己研读) 而举例来说goto 是C中一个很强大的功能, 但到了C++反而建议不要用,因为会危害程式的可阅读性 而你要在C中写出类似OO的语法当然也是可以,但就很像闭门造车,自找麻烦 3. 样板(Template) C++之所以强大的原因之一,自己研究 然後C/C++ 跟JAVA/.NET 相比 1. 记忆体管理 JAVA/.NET 少了delete 跟free这些要自己手动释放记忆体的家伙 取而代之的是Garbage Collection(俗称GC), 让底层自动帮你管理哪些资源不再被利用需要释放 因为是系统底层管理的,所以你也不能知道到底释放了没 你顶多使用GC.Collect() //.net 去通知系统该释放了,但系统到底释放了没 天知道 2. 泛型(template) 你没看错,跟C++的样版名称一样,但偏偏两者不完全相同 MSDN中简单说明了这两者不是一样的东西,C#中的是阉割版(应该可以这样说) https://msdn.microsoft.com/zh-tw/library/c6cyy67b.aspx 3. 指标(pointer, ptr) C就俱备的强大利器,把记忆体的利用又细分成实体跟门牌号码(指标)的概念 先学JAVA/.Net的在回去看C/C++ 常常会看不懂 ptr到底在干嘛 因为JAVA/.Net 已经简化了ptr,在里面可能会看到的指标大概就只剩this(物件本体) 以上是小弟工作写了半年C++简单的介绍.Net 跟C++的差异 如果是学习导向的,C++跟.Net都学不会吃亏 如果是工作导向的,就看你要走哪个领域 e.g 走前端html/javascript的话,你就不需要学C/C++了 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.59.148
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1461257524.A.154.html
1F:→ freeunixer: 是 Java/C# 只能 ref 不能 ptr ,就搞不懂 ptr 在干啥. 04/22 01:10
2F:→ freeunixer: 学 Java/C# 的 ref 以为是 ptr,学过 C++ 才知道并不是 04/22 01:12
3F:推 loveflames: 其实C++用smart ptr比较好,还有C++也加入GC机制了 04/22 01:22
4F:推 doomleika: 没有finally强迫要用RAII不然等着resource leak 04/22 01:38
5F:推 doomleika: 一堆undefined behavior出错又不会告诉你有问题 04/22 01:40
6F:→ doomleika: Double delete把heap搞烂大概一个星期就没了 04/22 01:41
7F:→ doomleika: 编译器对标准不是100%实作有些功能看得到吃不到 04/22 01:42
8F:推 doomleika: 标准函式库在应用面太弱变成要实务些东西又要看 04/22 01:45
9F:→ doomleika: 第三方lib,然後不同lib写法有不一样 04/22 01:45
10F:推 doomleika: 有一堆选择,也不像一堆语言有规定一个写法或conventio 04/22 01:47
11F:→ doomleika: 变成procedure/OO/generic全部都要会 04/22 01:48
12F:→ doomleika: 不能只会一种,不然没办法维护legacy code 04/22 01:49
13F:推 loveflames: C++同样一件事可以用一堆语法来写,还有多如牛毛的语 04/22 01:49
14F:→ loveflames: 法省略规定 04/22 01:49
15F:→ loveflames: 如果碰到metaprogramming就更可怕 04/22 01:50
16F:推 doomleika: 光是i18n预设的compiler搞不好还在用ascii 04/22 01:50
17F:→ doomleika: 那是要用w_char还是第三方lib的unicode字串?如果有 04/22 01:52
18F:→ doomleika: 两个project要整合一个用w_char一个用wxWidget你要怎 04/22 01:53
19F:→ doomleika: 诸如此类的问题 04/22 01:53
20F:→ doomleika: 像java现在预设unicode,python有unicode字串或是三版 04/22 01:54
21F:→ doomleika: 直接预设帮你搞定 04/22 01:55
22F:推 doomleika: 很多别的语言预设应该弄好的问题到c++就是一堆毛 04/22 01:57
23F:推 micola: delete[] not delete 04/22 08:30
24F:推 Kalamu: 原PO的写法用delete没错吧! 04/22 08:56
25F:推 Rougun: 大家觉得Rust怎麽样呢 04/22 09:13
26F:→ brucetu: 我觉得this不是指标啊 04/22 09:26
27F:→ brucetu: 指标抓个CE找个单机游戏玩玩就懂了 04/22 09:27
28F:→ brucetu: 也不是什麽门牌跟实体的概念.. 04/22 09:27
29F:→ brucetu: int*跟int都是占用4byte存着值 本质一样 04/22 09:28
30F:→ atst2: 是实作的结果一样,本质不同,不同硬体,系统对int的长度 04/22 09:47
31F:→ atst2: 可不同啊, 现在认为一样是长久演变来的习惯 04/22 09:48
32F:→ brucetu: int长度也算在本质的范围吗.. 04/22 09:50
33F:→ brucetu: 真心推荐学习上看到很多*就晕的人 去玩一下CheatEngine 04/22 09:52
34F:→ brucetu: 找过一两个偏移 就懂指标运做起来是什麽意思 几层都一样 04/22 09:52
35F:→ yr: int *ptr 然後 delete a ,编不过吧,然後阵列要 delete [] 04/22 10:37
36F:→ dreamnook: http://www.slideshare.net/olvemaudal/deep-c 04/22 10:40
37F:→ dreamnook: 以前我都觉得我只是穿着泳圈在水面上呼吸 04/22 10:40
38F:→ dreamnook: 看完这个後...证明我是对的XD 04/22 10:41
39F:→ dreamnook: 445页 有空可以看看 可以了解为何c/c++很"深" 04/22 10:42
40F:推 elements: Rust 很好 04/22 11:16
41F:→ elements: 阿 值得学 04/22 11:16
※ 编辑: VVll (211.72.185.162), 04/22/2016 11:42:57
42F:→ ts04953635: this比较像是class吧,我觉得 04/22 12:47
43F:→ fjyang: 用C写OO是闭门造车的话,Liunx是自找麻烦? 04/22 12:55
44F:→ bibo9901: linux kernel 没有太多OO啊, 要看就看gtk+ 那就真的很丑 04/22 13:08
45F:推 femlro: 楼下c++之神 yoco 04/22 13:10
46F:推 iWRZ: Linux Kernel OO也还好吧....... 04/22 14:05
47F:推 sarafciel: 等记忆体位置可以取负值再来说int跟int*一样吧XD 04/22 14:45
48F:推 wxywxywxy: C也可以写出很棒的oo程式 但要花非常多的心力 04/22 15:40
49F:推 oread168: 帮请神 04/22 15:54
50F:→ x000032001: 负值只是一种表示法而已阿..电脑就只有01 哪来正负 04/22 17:46
51F:推 cobrasgo: 基本上C和C++是否能拿来类比就很有讨论空间了 04/22 18:20
52F:推 zebraseven: 你 malloc 前是不是忘了 type casting 04/22 19:12
53F:→ brucetu: 同样4byte你可以取成正值也可以取成负值啊…我的天R 反 04/22 21:50
54F:→ brucetu: 正难不难 看个人吧 04/22 21:50
55F:→ brucetu: 纠结在语言规范说很难 我只觉得那叫很杂 没什麽令人看不 04/22 21:52
56F:→ brucetu: 懂的东西 就是多而已 包括那445页的pdf也是 就是规则多 04/22 21:52
57F:→ brucetu: 很杂而已 要这样比 那个语言没有一堆自己的规则呢 04/22 21:52
58F:→ doomleika: 懂这些只觉得未来新人进来会很辛苦 04/22 22:01
59F:→ GoalBased: C# 语言规格 500页 04/23 01:01
60F:推 iWRZ: Thinking in Java 整本厚度和重量可以拿来当杀人凶器 04/23 01:24
61F:推 kwpn: 3楼搞错啦,是C++/CLI有加入GC机制,不是C++ 04/23 06:12
62F:→ remmurds: java目前还没有真正的泛型 java的泛型比较像是语言特色 04/23 08:49
63F:→ remmurds: 所以在执行阶段时会出现大量的type casting 因为在JVM那 04/23 08:50
64F:→ remmurds: 层通通都被当成object来存 04/23 08:50
65F:→ remmurds: .NET记取了java的缺点 在泛型的设计上跟java有很大的不 04/23 08:51
66F:→ remmurds: 同 执行阶段没有type casting的问题 04/23 08:51
67F:→ duckfly: JAVA泛型会这麽设计是为了相容之前没泛型只用Object的写 04/23 13:00
68F:→ duckfly: 法,有着历史包袱没法像C#可以砍掉重练 04/23 13:00
69F:推 loveflames: 回kwpn,minimal GC後来没进入标准?我倒没注意 04/23 13:47
70F:推 kuope: Thinking in Java这本书有两种变成凶器的方式 04/23 16:07
71F:→ kuope: 一种是直接挥击被害人的头部 04/23 16:07
72F:→ kuope: 另一种是让被害人整本嗑完 04/23 16:07
73F:→ kuope: 我不知道那一种比较惨… 04/23 16:07
74F:→ newstar2007: c++没有原生的应用层library 造成後续很多程式整合上 04/25 01:42
75F:→ newstar2007: 极度的麻烦 光是搞字串这东西就花掉一半的开发时间了 04/25 01:43
76F:→ newstar2007: 如果再扯到微软过去开发又舍弃的东西 根本灾难 04/25 01:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP