簡單記錄:
1)了解對象的演化

2)數據的抽象
大多數c庫都有一組struct和活動在這些struct上的函數,struct相當于一個數據集合,描述一個對象的若干屬性
關于包含頭文件,以及連接可能出現的問題的總結:
目標文件中函數可能參數類型不符合,編譯器講進行類型轉換
在棧中放入int值將轉換成float值等情況,如果這將改變棧中變量的值就糟糕了
 關于makefile文件,描述文件間的關系
將變量屬于struct的特性引申到函數(解決了各種結構函數名字相抵觸的悲劇),那么類就出現了!這樣函數所作的事情只與解決問題有關,與運行機制無關(其實計算機替我們做了)。但定義函數時還是要明確指出函數屬于哪個結構, 使用范圍分解運算符(::),^_^聲明后才能使用,相當于編譯器進行有效性檢查,類似xml文件的dtd,解析器對他的有效性檢查。注:system("pause");需要頭文件iostream,管道功能?
抽象數據類型和內置類型是一樣的,只是調用方式不同。相當于給對象發送消息。

3)隱藏實現
private public protected
嵌套友元:
1聲明嵌套的struct
2聲明全局范圍的一個友元
注: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);
程序例:

#include <stdio.h> 

int main(void

/* redirect standard output to a file */ 
if (freopen("OUTPUT.FIL""w", stdout) == NULL) 
fprintf(stderr, 
"error redirecting stdout\n"); 

/* this output will go to a file */ 
printf(
"This will go into a file."); 

/* close the standard output stream */ 
fclose(stdout); 

return 0
}
 


經過測試還是很管用
但是比如我編譯一個cpp程序
如何捕獲dos窗口的出錯信息呢?
望高手指教