我知道C++(two?)中的結構和類之間幾乎沒有區別。儘管如此,我已經被指示使用結構來定義簡單的小東西,比如可能不需要成員函數的節點(儘管我可以在技術上包括包含成員函數)。比如我可能會定義一個節點作爲鏈表類的私有成員如下:我可以在沒有定義構造函數的情況下在堆上創建新的結構體嗎?
class LinkedList {
struct Node {
MyObject *data;
Node *next;
};
Node *list;
};
在這種情況下,然而,是有可能創造這個結構在堆上的一個新的實例,否則我就需要定義一個構造函數?有沒有辦法在沒有新操作員的情況下在堆上創建事物?或者,更好的是:我是否沒有必要緊緊地堅持這樣一個概念,即不應該爲結構定義成員函數?我應該繼續並定義一個嗎?或者如果我這樣做,是否會像承認Node真的是內部類而不是內部結構?我真的應該爲這些事情擔心嗎?哪個更具可讀性?
謝謝!
你應該提到malloc不會運行構造函數,如果有的話。 – 2010-12-13 04:23:32
也免費調用析構函數:) – Arunmu 2010-12-13 04:51:01
並且'calloc'也會做一個'memset(0)' – ruslik 2010-12-13 05:37:45