3 回答

TA貢獻1856條經驗 獲得超11個贊
若p要定義為一個函數的指針,()中
參數類型與p將要指代的那個函數的
參數一致。
設Time類中有public函數:
void say(){};
void print(char *){};
則可以聲明:void (Time::*p)();
可以賦p=&Time::say;
類似的,可以聲明:
void (Time::*p1)(char*);
可以有:
p1=&Time::print;

TA貢獻1777條經驗 獲得超3個贊
void DFS (int root, int father) { int bot = top; for (int i = Head[root]; i; i = Link[i].next) { int v = Link[i].to; if (v == father) continue;
DFS (v, root); if (top - bot >= B) {
capt[++ bind] = root; while (top > bot)
belong[Stack[top --]] = bind;
}
}
Stack[++ top] = root;
}

TA貢獻1868條經驗 獲得超4個贊
1.struct成員默認訪問方式是public,而 class默認訪問方式是private!
2.exit函數終止程序執行會調用析構函數 ,abort函數終止程序不會調用析構函數!
3.靜態局部變量直到程序終止時才退出!
4.通過public 函數返回 private成員的引用有可能會破壞類的封裝 ,造成外部變量可以改變類私有成員值!
5.常量對象只能調用常量成員函數,常量成員函數可以有非常量版本重載!
6.常量數據成員只能在定義時初始化或者在構造函數里用成員初始化值來初始化 ,不能用賦值語句來初始化!
7.要在析構函數里面使用delete來釋放使用 new申請的內存空間!
8.編寫析構函數來釋放類中成員所申請的內存空間和使用深拷貝函數是好的編程習慣!
9.operator++()是相當與++d,operator++(int) 是相當于 d++ !
10.如果父類中函數是虛擬函數 ,那么在每個子類中顯式聲明虛擬函數是好的編程習慣!
11.如果類作為基類,其析構函數要聲明為虛析構函數 ,這樣派生類才可以調用自己的析構函數!
12.一個new 就對應一個 delete是好的編程習慣!
13.istream輸入read 是從文件中讀取 ,ostream輸出write 是寫到文件中去!
14.istream是seekg 重置文件指針位置 ,ostream是seekp, 文件用file.eof()來判斷是否讀取到文件尾部!
15.assert(條件), 當滿足條件時就不 assert,不滿足條件才會assert!
16.對于不需要修改的變量,使用常量引用來傳遞參數可以既保證安全性又保證效率!
17.在循環之前調用srand(time(0)),然后在循環中調用 rand()函數可以使得每次隨機的結果都不相同!
18.一維數組形參如下:int a[],二維數組形參如下 :int a[][SIZE],第一個[] 是空的,后面必須非空!
19.#define A 10 后面沒有分號!
20.在局部函數中用new創建的變量是存在內存中的,即便局部函數執行完畢內存變量仍然存在,但是指向它的指針有可能是局部變量,則需要在局部函數結束前調用 delete釋放內存空間,以免內存泄漏
- 3 回答
- 0 關注
- 284 瀏覽
添加回答
舉報