2012-11-02 49 views
1

我想今天一邊唸叨的C++類的默認構造函數,讓我們說我們有類SortedArray這個代碼對象:數組指針使用默認的構造函數

class SortedArray 
{ 

private: 
    struct arrayCell 
    { 
     int pageID;     
     int totalNeighbors; 
    }; 
}; 

我們指定的數組指向這個類的對象的指針,然後我們使用默認構造函數初始化指針。會發生什麼?將內存存儲爲結構?如果是int將被初始化爲什麼?謝謝。

+0

接受的答案是錯誤的,除非您(初始值)初始化int,否則不會初始化它們。 –

+0

@SethCarnegie你完全正確,事實上有幾件事情是不正確的。我相應地改變了我的答案。 –

回答

2

OLD ANSWER:我很確定爲那個元素創建了內存,如果你編譯並運行它,那麼訪問這個內存時就沒有分段錯誤。整數將被設置爲默認值0.

可以找到默認的構造函數信息here

編輯:以上的答案是不正確。代碼不會爲整數元素提供內存,因爲結構已定義,但不會創建使用該結構的對象,除非您手動創建一個,在這種情況下,將爲這些整數創建內存。

對於創建整數的值:

他們不會被初始化爲任何有意義,他們將只包含什麼在內存中創建之前。

0

我很確定它會爲您在數組中初始化的每個對象分配內存,其中int設置爲默認值(0)。

2

如果你在談論類型SortedArray*的指針,那麼沒有。

SortedArray是一個具有私有嵌套類型的空類。

如果您分配嵌套類型SortedArray::arrayCell的實例,則整數將被默認初始化(該值未指定)。

相關問題