gpt4 book ai didi

c++ - 是否可以动态检查文本字符串是否是 C++ 中给定类的成员?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:43:15 30 4
gpt4 key购买 nike

我想知道是否有任何方法可以检查给定类是否包含给定成员,除了给定成员的名称作为 std::string 提供。这是我所处情况的示例:

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 不是像这样的函数的最佳名称,但它基本上应该检查该类是否有一个名为 prop 的成员。我不知道如何实际执行此操作。本质上,我试图动态检查一个类是否有给定的成员。我在 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

如果有任何帮助,我将不胜感激。谢谢

最佳答案

还有一种在编译时使用模板执行此操作的方法,您不能在运行时指定动态字符串进行检查,但请考虑:

How to detect whether there is a specific member variable in class?

关于c++ - 是否可以动态检查文本字符串是否是 C++ 中给定类的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979093/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com