2012-05-06 69 views
-2

我需要知道我是如何通過他們的名字或數字來索引不同類型的對象的(或者我可以用特定父項中的每個項目來循環的東西) 或者是否有其他方式可以處理大量沒有做的事情的數量。如何用C++創建父系統?

obj1.blah = blah 
obj2.blah = blah 
+0

你的意思是一樣的陣列/矢量/圖(如果你想要一個鍵)? – chris

+0

如果沒有上下文,這個問題沒有意義。你想達到什麼目的?你知道C++的容器庫嗎? –

+0

我只是想將不同類型的變量存儲到一些數組中。 – kapesu8

回答

1

使用映射,您可以創建關聯數組,即通過字符串名稱引用對象的不同實例。

#include <map> 

class ObjectType { 
public: 
    void DoSomething() 
    { 
    std::cout << "Did something\n"; 
    }; 
}; 

std::map<std::string, ObjectType> objects; 
objects["object1"] = ObjectType(); 
objects["object2"] = ObjectType(); 

objects["object2"].DoSomething(); 
... 
+0

非常感謝。 – kapesu8

1

在C++中處理多個對象的標準方法是使用容器, vector

#include <vector> 
#include "MyObject.hpp" // contains your object type definition 

int main() 
{ 
    std::vector<MyObject> v = populate_container_with_objects(); 

現在你可以迭代它很容易:

for (auto & ob : v) 
    { 
     do_something_useful_with(ob); 
    } 
} 

在老的編譯器,你不得不說:

for (std::vector<MyObject>::iterator it = v.begin(), end = v.end(); it != end; ++it) 
{ 
    do_something_useful_with(*it); 
}