2012-11-07 45 views
0

可能重複:
Using unique dynamic variable names (not variable values!)C++對象的動態命名

我是新來++對象以C的面向對象編程。我正在嘗試使用類和對象編寫代數求解器。

例如,我想創建一個名爲term的類。 我有一個變量,例如:

int number_of_term = 1; 

然後我想名爲number_of_term創建一個長期目標。

我試圖用一個指針來做到這一點,但沒有奏效:

term *number_of_term; 

是否有可能在C++中動態地創建和命名的對象?我可以使用變量作爲對象的名稱嗎?

如果不是,我該怎麼做才能做出類似的事情。

+0

@Joe不完全一樣,但這必須是某件東西的重複 –

回答

0

不,您不能使用變量作爲對象的名稱。如果我正確理解了你的用例,你需要number_of_termterm類型的對象。您可以使用像vector這樣的容器類來容納number_of_term對象。像這樣:

#include <vector> 

struct Term 
{ 
}; 

int main() 
{ 
    std::vector<Term> terms; 
    int number_of_term = 10; 

    for(int i = 0; i < number_of_term; ++i) 
    { 
    terms.push_back(Term()); 
    } 
} 
3

不,C++中的對象的名稱必須在編譯時確定。 C++不是一種動態語言。您應該使用std::mapstd::unordered_map。這些可以讓你將一個字符串映射到一個對象。這就是通常實現的動態語言,它允許您在運行時確定對象的名稱。