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