[分享] Coding & Life

作者: sunhextfn (阿毛)   2015-02-18 20:48:48
先前在回家的路上跟你一起瞎掰...
已經想po很久了,最近才知道有c_and_cpp版,或許po在這比較合適...?
應該沒有違規吧~就把本文當作複習C++語法吧XD
老師上課講到...假如人生是程式,那麼...
假如每個人的人生都是一個故事,programmer是這故事的全知者。
假如故事是用C/C++語言寫下,g++是故事的編輯者,檢查有沒有語法錯誤,幫它列印,裝
釘成書,於是得到屬於每個人的執行檔...
#include 是引用其他人的故事,或者說是故事的前傳。
main function是故事的主線
故事中,global variable是故事的主角,local variable是主角在各個階段遇到的配角,
配角在主角脫離他的scope後就歸還給記憶體,
static variable是超越scope的配角,
主角可以在任何scope用operator:: 進入class和他聯絡。
operator是人們之間溝通的方式。
function是主角會遇到的支線任務,這些任務可能需要和別人一起完成。
pass by value,是間接地,複製那人的經驗,學習那人的能力,才能勝任這個任務。
pass by reference,是那個人直接和你一起完成任務。
array是一堆對主角有類似影響的人群。
pointer是人們之間的對話紀錄,pointer標記這些對談在主角memory內的位置,
可以將pointer cast成不同的形態去回憶這個memory,但如果memory錯亂,會
segmentation fault,人會崩潰。
就像C++是物件導向,這些故事也是以人為本。//跟司馬遷寫史記一樣
class可以是個人,也可以是群體。
每個人都是一個object,object有它所屬的class,class之間可能有inheritance關係
多個小class也可以集合成一個大class,這就是一個群體。
class的data member就是這個群體的成員,
member function是這個群體會做的事情。
public區域是外界可以觀察到這個群體的範圍,
protected區域是這個群體繼承給他的下一代時的資源,
private區域是這個群體之內的小秘密。
virtual function是base class(爸媽)教小孩(derived class)的一些基礎技能,但小孩
做起來的樣子可能跟爸媽不一樣。
polymorphism(用base class pointer指向derived class memory),就像爸媽讓小孩自由
發展。
作者: dritchie (卍~邁斯納效應~卍)   2015-02-18 22:41:00
一個好的故事應該要沒有global variable的說
作者: tjjh89017 (伊達政宗)   2015-02-18 23:26:00
可是global variable還是很重要啊,寫系統不可能沒有他
作者: APE36 (PT鄉民)   2015-02-18 23:46:00
推,可以寫得更寫實一點
作者: a27417332 (等號卡比)   2015-02-19 00:58:00
推,寫得很棒
作者: ahwater01 (臭酸咖)   2015-02-19 11:34:00
很好奇樓上要做甚麼XD
作者: yushiung (shawn)   2015-02-19 21:06:00
推推
作者: tinlans ( )   2015-02-20 03:30:00
程式設計不要停留在語法層級太久,不然容易走火入魔,然後又沒有培養到開發或維護大型軟體系統的能力。
作者: NilPtr (神奇的空指標)   2015-02-21 02:44:00
Memory leak、Dangling pointer、Implicit type castGod object、Hiding inherited names,嗯...有很多可以寫
作者: pizzafan (七情三想)   2015-02-21 09:57:00
我只是[亂入]一下

Links booklink

Contact Us: admin [ a t ] ucptt.com