delete表達式只能應用在:用new表達式產生的指針上,如上例.
62.
例如.需要的時候才分配一個字符串,但又不知道該字符串長度時才分配與釋放的對象被稱為動態分配對象.
動態分配的對象被分配在程序的空閑存儲區的可用內存池中.
程序員用new來創建動態分配對象,用delete來結束時對象的生命周期.
63.
名字空間namespace表示方法:
namespace MySpace{
….
}
名字空間的別名:
namespace N=MySpace;
64.
什么時候用到extern
A,在此文件中聲明別的文件的變量時用extern
B,在cpp程序文件中用到c的庫函數時用extern
65.什么時候用到static?
A,聲明靜態變量時用static
B,聲明全局變量時可用static
C,static型的變量是存儲在靜態存儲的,他的值在程序運行時只初始化一次
66.
重載函數:
概念:允許多個函數共享同一個函數名,參數可不同但實現的功能相同,重載不關心函數的返回值類型.
目的:為多個不同參數不同名函數,但實現的功能相同的多函數,提供了一種簡潔解決方法.
如以下均是重載函數:
① double calculate(double);
② double calculate(double,double);
③ double calculate(double, int);
① 和②可構成重載,②和③也可構成重載,① 和③也可構成重載.
成員函數被重載的特征有:
1) 相同的范圍(在同一個類中);
2) 函數名字相同;
3) 參數不同;
4) virtual關鍵字可有可無。
67.
覆蓋是指:
派生類中存在重新定義的函數,其函數名、參數列、返回值類型必須同父類中的相對應被覆蓋的函數嚴格一致
覆蓋的特征有:
1) 不同的范圍(分別位于派生類與基類);
2) 函數名字相同;
3) 參數相同;
4) 基類函數必須有virtual關鍵字。
68.
當一個函數在一個域(類)中被多次聲明時,編譯器會按如下步驟解釋第二個(以及后續)的聲明:
A.如果兩個函數的參數表中參數的個數或類型不同,則認為這兩個函數是重載.
void print(const string &);
void print(vector &);//重載函數
B.如果兩個函數的返回類型和參數表精確匹配,則第二個聲明被視為重復,則產生編譯錯誤.
void print(const string &str);
void print(const string &);//聲明同一函數,錯誤!
C.如果兩個函數的參數表相同,但是返回類型不同,則第二個聲明被視為重復,則產生編譯錯誤.
unsigned int max(int i1,int i2);
int max(int,int);//錯誤.
D.如果在兩個函數的參數表中,只有缺省實參不同,則第二個聲明被視為重復.
int max(int *ia,int sz);
int max(int *,int=10);
E.如果兩個函數中,函數名和參數表都相同,而只是一個函數的參數表中有const時,則不能重載,因為const不可更改;但是當用在指針和引用上時例外.
int f(int);
int f(const int );//出錯.
69.
注意:
重載函數必須在同一個類(域)中,不同類(域)間的函數不能重載.
70.
函數重載的解析過程:
當出現引用該重載函數時,檢查當前類中,該同名函數的數量,然后分析那一個與當前最匹配,則選用最匹配做為解析,如轉換出錯,則返回錯誤.
71.
LPCSTR — LPCTSTR —- CString — char* —-char[] —- CHAR —- 區別?
LPCTSTR 是將 const char* 類型重新定義
LPCSTR 是把 char*類型重新定義
CHAR 是把char類型重新定義
char[] 沒有這個東西
CString是一個類,封裝了常用的字符串操作
POSITION 是指集合中某個元素的位置.
如果要表示一個字符串可以這樣
char str[32] = “a string”;
char *buf = “bbbbb”;
CString s = “ccccc”;
如果要支持Unicode最好使用CString類,簡單
72.
_T(“”)是一個宏,他的作用是讓你的程序支持Unicode編碼
如果你編譯一個程序為ANSI方式,_T實際不起任何作用。
而如果編譯一個程序為UNICODE方式,則編譯器會把”Hello”字符串以UNICODE方式保存。
_T和_L的區別在于,_L不管你是以什么方式編譯,一律以UNICODE方式保存。
73.
1.快捷鍵
Shift+F4可查看上一個和下一個錯誤.
F5運行
F7編譯
F9斷點
F10步越調試
F11步入調試
SHIFT+F5結束調試
CTRL+F5運行
2.問題
改動源碼后,F5時會彈出窗口提示.
變量生存期的問題:循環體內定義的變量在循環結束時就會被銷毀,
指針就是地址,指針變量是用來存儲地址的!當然,在定義的時候得定義好指針將要指向的變量是int, float ,char,double等中的那種類型。
看文倉www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161217/73014.html
文章列表