2013-05-29 63 views
0

可以說我有一個簡單的類,定義如下查找字符串屬性類對象

class objectA { 
public: 
    objectA() {} objectA(std::string aName, int aValue) : name(aName), value(aValue) {} 
    std::string name; 
    int value; 
} 

而且我們定義兩個對象

objectA A("myObjectA", 1); 
objectA B("myObjectB", 2); 

我怎樣才能在編譯時訪問得到的訪問其中一個對象通過鍵盤查找,如

get("myObjectA") 

並且也許還可以在之後設置該值

get("myObjectA")->setValue("3") //sets the int value new 
+0

這一切都取決於創建的對象是如何存儲的 - 您可以使用對象的名稱作爲std :: map中的鍵,或者使用std :: list並使用std :: find_if來搜索列表。 –

回答

0

我想你可以有一個靜態的STD :: map作爲ObjectA類的私有成員。並且還有一個靜態Getter根據鍵值查詢此映射。

另外還有一件事是在你的CTOR中填充這張地圖,這將確保你不會丟失任何對象從註冊到這個靜態地圖。