先前在回家的路上跟你一起瞎掰...
已經想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),就像爸媽讓小孩自由
發展。