假設我有一個帶有兩個指針的結構,每個指針指向一個實現了析構函數的對象。此外,假設頭指向Listnode結構旁邊一個非NULL值*學生和*:刪除結構的指針是否也會刪除結構中的指針?
struct Listnode {
Student *student;
Listnode *next;
};
Listnode *head = new Listnode;
如果我使用delete
保留字的Listnode指針「頭」將它稱之爲內的析構函數分別構成「學生」和「下一個」指向的Student類和Listnode類。換句話說,刪除* head還會刪除* student和* next頭是唯一指向該Listnode的指針
所以你可以實現一個結構的析構函數? – 2012-04-10 00:54:54
@PatMurray絕對!無論你在課堂上做什麼,你都可以在'struct'中做。實際上,唯一的區別是,在第一次訪問聲明(公共,私有或受保護)之前,類的成員被認爲是私有的,而同一個結構的成員被認爲是公有的。 – dasblinkenlight 2012-04-10 00:57:42
結構體可以繼承類似的類,並且默認的繼承訪問是公共的struct和私有的類。另一個區別,但沿着同樣的路線。 – MSalters 2015-08-21 14:47:19