C 析構函式只宣告而不定義的問題

2021-10-10 15:51:55 字數 500 閱讀 2079

現附上乙個簡單的小例子(計算圓柱體體積)

#include

using

namespace std;

//計算圓柱體體積

class

cylinder

//圓柱體

;cylinder::

cylinder()

//建構函式

double cylinder::

getindex()

intmain()

在這個案例中,類cylinder中宣告了析構函式~cylinder,卻沒有在後面給出析構函式的定義,從而導致程式報錯

如何修改錯誤呢?

大家只需要把析構函式的宣告去掉就可以了!

大家可以參考這篇部落格:c++建構函式、析構函式、複製(拷貝)建構函式的注意點

C語言函式只定義而不宣告問題

2010 04 27 10 40 42 小白實驗證明,tc3.0中,不寫函式宣告,只寫函式定義也是可以的。但是 申明 不開闢記憶體,僅僅告訴編譯器,申明的部分存在,要預留一點空間。定義 開闢記憶體。申明 屬於 預編譯範疇的。最好寫在標頭檔案中 樓主,自定義標頭檔案學了沒有啊?申明都寫在標頭檔案中,只...

C 析構函式的定義和使用

析構函式 destructor 也是乙個特殊的成員函式,它的作用與建構函式相反,它的名字是類名的前面加乙個 符號。在c 中 是位取反運算子,從這點也可以想到 析構函式是與建構函式作用相反的函式。當物件的生命期結束時,會自動執行析構函式。具體地說如果出現以下幾種情況,程式就會執行析構函式 如果在乙個函...

c 析構函式為虛函式的問題

昨天去xx公司面試,面試官問了乙個關於c 類析構函式為虛函式時,如果是父類的指標用子類來new,如果發生析構時,析構函式是virtual與不是virtual有什麼區別。當時答的不好,回來總結了一下,在機器上實現了一遍,終於搞明白了。記錄下來,以後遇到這種情況自己一定不要犯錯了 一 先看第一種最簡單的...