2012-03-20 63 views
3

我想創建一個數組來存儲實際對象,而不是指向C++中的對象的指針?創建實際對象數組C++

有人可以解釋我該怎麼做?是它更好地使用載體,或直接,如:

Student s [10]; 

OR

Student s [10][]; 
+0

第二個是否編譯? – pezcode 2012-03-20 13:17:13

+0

不,第二個不編譯。 C++中只有少數幾個地方的'[]'是有效的語法。 – 2012-08-02 16:48:17

回答

4

使用:

Student s [10]; 

創建10個Student實例的數組。

我認爲Student s [10][];是無效的。

但是對於C++我不會使用C類型的數組,所以最好使用像std::vector或C++ 0x std::array這樣的類,這些類可能不適用於最新的標準庫/編譯器。

對於上面的例子有std::vector

#include <vector> 

... 

std::vector<Student> students(10); 

而且具有std::array

#include <array> 

... 

std::array<Student, 10> students; 
+0

謝謝你,我想接受你的完整答案,但它不允許我這樣做:(( – 2012-03-20 13:26:52

+0

沒問題,至少我可以幫助:) – Constantinius 2012-03-20 13:27:30

+0

一個問: 如何定義頭文件中的矢量大小?如何重新定義它,然後在cc文件中? – 2012-03-20 13:27:33

2

不要使用數組。數組是C而不是C++。改爲使用std::vector,這是C++處理此問題的方法。

+0

你能告訴我一種使用Vectors來存儲真實對象的方法嗎?謝謝 – 2012-03-20 13:18:00

+0

@shaklasah:矢量總是存儲實際的物體,除非你特意告訴他們。 – 2012-08-02 16:49:57

1

我會建議使用的std ::載體,如果你想使你的陣列可擴展的,否則只是使用學生[10];爲10個對象。