2014-02-22 66 views
0

我正在開發基本上使用幾個類來模擬零售環境的C++項目;到目前爲止,一切都很順利,但我並沒有長時間使用C++,而且我對這個數組應該如何工作有點困惑。將指針的私有數組初始化爲空

//Customer.h 
private: 
    std::array< CustomerOrder *, 3 > orderList; 

基本上,該陣列在Customer.h文件作爲私有聲明,但Customer.h和customer.cpp中文件還提供用於添加CustomerOrder指針的方法

addOrder(CustomerOrder *c) 

(CustomerOrder是另一個類)到數組。根據我的經驗,該方法的邏輯非常簡單:使用for循環來查找包含空指針的第一個索引,然後在該索引中插入一個指針。

問題是,這涉及到首先將數組初始化爲空指針,我不知道如何或在哪個文件中我應該這樣做。由於數組是私有的,我會承擔我使用沿着

for(size_t i = 0; i < orderList.size(); ++i) 
    orderlist[i] = nullptr; 

orderlist[3] = {nullptr} 

線的東西我可以/我做初始化它在.h文件已經在這樣做.h文件?有沒有更可靠的方法來初始化數組?

僅供參考,我使用的是C++ 11標準,如果這有什麼區別的話。

回答

1

如果此數據成員是私有的,則可以在構造函數或某個成員函數中初始化它,以初始化它。

要將數組的所有元素設置爲nullptr,您可以使用類std::array的成員函數fill

例如

orderlist.fill(nullptr); 
1

使用構造函數,並且可執行代碼不應該在h文件中。
而且:不要在3號陣列上做orderlist[3] = {nullptr}
它只有指數0,1,2。循環好得多。