2017-07-07 61 views
2

我想知道是否有任何方法來檢查給定的類是否包含給定的成員,除了給定的成員的名字是作爲std :: string提供的。這裏是我的情況爲例:是否可以動態檢查一個文本字符串是否是C++中給定類的成員?

class MyClass { 
public: 
    int a; 
    int b; 
    int c; 
    void Handle_Class(std::string prop) { 
     if (this->prop) { //pseudo code of what I want to accomplish 
      //do stuff 
     }; 
    }; 
} my_class; 

int main() { 
    my_class.Handle_Class("a"); 
}; 

我知道Handle_Class不是這樣的功能最好的名字,但它基本上應該檢查類有一個叫做道具成員。 我不知道如何實際做到這一點。基本上我試圖動態檢查一個類是否有給定的成員。 我有很多的經驗,在Lua中,你可以很容易地在Lua做到這一點(雖然Lua是不是面向對象的,你可以做到這一點使用表)

local my_table = {a = 123; b = 456; c = 789}; 
local function Handle_Table(prop) 
    if my_table[prop] then 
     print("property "..prop.." exists inside my_table!"); 
    end 
end 

我希望得到任何幫助。 感謝

+0

是U覈實一些變量? – Megha

+1

如果我對你的方法不太熟悉,可以用地圖完成,你可以設置一些值,例如這樣的地圖,這樣你就可以比較字符串並獲得int。 –

+3

請參閱[爲什麼C++沒有反射?](https://stackoverflow.com/q/359237/10077) –

回答

相關問題