簡單記錄:1)了解對象的演化
2)數據的抽象大多數c庫都有一組struct和活動在這些struct上的函數,struct相當于一個數據集合,描述一個對象的若干屬性關于包含頭文件,以及連接可能出現的問題的總結:目標文件中函數可能參數類型不符合,編譯器講進行類型轉換在棧中放入int值將轉換成float值等情況,如果這將改變棧中變量的值就糟糕了 關于makefile文件,描述文件間的關系將變量屬于struct的特性引申到函數(解決了各種結構函數名字相抵觸的悲劇),那么類就出現了!這樣函數所作的事情只與解決問題有關,與運行機制無關(其實計算機替我們做了)。但定義函數時還是要明確指出函數屬于哪個結構, 使用范圍分解運算符(::),^_^聲明后才能使用,相當于編譯器進行有效性檢查,類似xml文件的dtd,解析器對他的有效性檢查。注:system("pause");需要頭文件iostream,管道功能?抽象數據類型和內置類型是一樣的,只是調用方式不同。相當于給對象發送消息。
3)隱藏實現private public protected嵌套友元:1聲明嵌套的struct2聲明全局范圍的一個友元注:struct與friend聲明分開
4)句柄類 一個結構體,結構體的實現部分在另一個文件中,對于產生一個指針來說已經足夠了
5)初始化與清除非本地goto語句也會調用析構函數,用c語言庫中的setjmp()和longjmp()函數可以不引發析構函數的調用
空間分配
函數重載語言的冗余,缺省參數1只有參數列表的后部參數才可是缺省的2開始使用缺省參數,那么它后面的所有參數是缺省的
void f(int x,int,float y)x,y都能被引用,但是中間的參數就不可以,因為它沒有名字。如果函數體內沒有使用中間的參數那么編譯器不會發出警告,如果中間的參數有名字就會發出警告。表明一個邏輯錯誤
6)位向量類操作符重載缺省參數例子輸出重定向問題:函數名: freopen 功 能: 替換一個流 用 法: FILE *freopen(char *filename, char *type, FILE *stream); 程序例: