template <class T>
class Stack
{
public:
Stack(int = 10) ;
~Stack() { delete [] stackPtr ; } //<--- What does the "~" signify?
int push(const T&);
int pop(T&) ;
int isEmpty()const { return top == -1 ; }
int isFull() const { return top == size - 1 ; }
private:
int size ;
int top ;
T* stackPtr ;
} ;
回答
它的析構函數,它破壞的情況下,釋放內存,等等,等等
下面是從ibm.com的描述:
析構函數通常用來釋放內存並執行其他清理在對象被銷燬時爲類對象及其類成員。當對象超出作用域或被顯式刪除時,會爲類對象調用析構函數。
見https://www.ibm.com/support/knowledgecenter/SSB27U_5.4.0/com.ibm.zos.r9.cbclx01/cplr380.htm
這是一個析構函數。它在對象被銷燬時被調用(超出生命範圍或被刪除)。
需要明確的是,你必須使用〜NameOfTheClass像構造,其他名稱是無效的。
「其他名稱有效」? – 2011-06-25 17:54:39
舊的答案...我想我的意思是,它可以是任何名稱,只要它與類名和構造函數名相同即可。 – Klaim 2011-06-26 10:07:18
這是一個析構函數。當對象超出範圍時,保證函數被調用。
...如果它分配在堆棧上。當在對象上調用'delete'時,如果它被分配到堆上。 – Jherico 2009-09-08 19:00:34
@Jherico:實際上是使用關鍵字「delete」的時候。請記住,關鍵字「new」調用「operator new」,然後在返回的地址上調用構造函數,因此完全可以在棧上「新建」內存。 :)關鍵字「delete」調用析構函數,然後調用「operator delete」。 – Troubadour 2009-09-08 20:53:13
@Jherico或居於命名空間範圍或是一個靜態類成員或函數本地靜態變量:靜態存儲持續時間。換句話說:所有具有自動存儲的可變數據將在適當時自動被破壞。當心[靜態初始化命令Fiasco](http://stackoverflow.com/a/1005709/85371) – sehe 2012-10-15 07:01:18
這將是析構函數(釋放任何動態內存)
正如其他人指出,在實例你問它是class Stack
析構函數。
但是考慮你的問題正是因爲它出現在標題:
在C++中什麼對波浪線「〜」功能名錶示過嗎?
還有另一種情況。在任何情況下除了之前一類的名稱(這是析構函數上下文),~
是一個補(或不按位)運算符。爲了確保它不上來,很多時候,但你能想象像
if (~getMask()) { ...
看起來相似,但有一個非常不同的意義的情況下。
- 1. C#中變量名之前的@符號是什麼意思?
- 2. 函數之前的&符號(&)是什麼意思?
- 3. 在C++中,字符串前面的'L'是什麼意思?
- 4. C中操作符之前的點是什麼意思?
- 5. python字符串之前的b前綴是什麼意思?
- 6. 「$」在Delphi中的數字之前是什麼意思?
- 7. 「斜坡」是什麼意思在名稱
- 8. 代字符「〜」在C++中是什麼意思?
- 9. javascript函數名稱中的$是什麼意思?
- 10. :: at函數名是什麼意思?
- 11. 方法聲明中參數名稱之前'@'char是什麼意思?
- 12. 這個C++函數是什麼意思?
- 13. 函數參數之後和函數體之前的char * in_str是什麼意思?
- 14. 函數之前的分號是什麼意思?
- 15. BASIC:函數名稱末尾的感嘆號是什麼意思?
- 16. 變量名稱「lsSQL」是什麼意思?
- 17. 在Objective-C中強調前綴變量名稱是什麼意思?
- 18. 這是什麼意思「的數據。名稱?」下面的代碼
- 19. 什麼?在C#中是什麼意思?
- 20. 脫字符(^)字符是什麼意思?
- 21. 變量之前括號中的類型名稱是什麼意思?
- 22. {}中的字符串是什麼意思?
- 23. 什麼意思?在c代碼的意思是
- 24. 在C中,「void(* parse_arg_function)(const char *)」函數參數是什麼意思?
- 25. 在C#中的字符串中發現{0}是什麼意思?
- 26. 在c/C++中,^ =是什麼意思?
- 27. 什麼是:0在TensorFlow中名稱的意思是?
- 28. 當函數簽名在名稱前有「&」時,意味着什麼?
- 29. 是什麼意思:是什麼意思?
- 30. 「c」是什麼意思旁邊的字符串在vba中?
〜是按位否定運算符。當應用於函數定義時,它意味着該函數將執行與它所要做的相反的操作,例如'〜push()'會真正彈出堆棧,而'〜writeSeriousComment()'實際上會產生這樣的評論。 – 2009-09-08 18:50:29
對於那些似乎在本網站發佈大部分C++問題的人,不要試圖閱讀j_random_hacker的評論。 – Alan 2009-09-08 19:17:09
爲有幽默感(以及一些基本編程知識)的人帶來好處請務必閱讀j_random_hacker的評論。 – 2009-09-09 02:14:13