gpt4 book ai didi

c++ - 从字符串输入格式调用 C++ 成员函数

转载 作者:行者123 更新时间:2023-11-28 02:05:01 24 4
gpt4 key购买 nike

假设我有一个简单的 C++ 类:

class Calc
{
private:
int a;
public:
Calc(){
a = 0;
}
void seta(int a){
this->a = a;
}
int geta(){
return a;
}
};

现在,假设在 main 中我创建了一个此类的对象,并从用户那里获取两个输入:var_name 是字符串格式的实例变量名称,以及 action 以字符串格式设置获取。例如:如果 var_name = "a"和 action == "get",那么我应该可以调用 geta() fn。有什么办法可以在 C++ 中实现这一点。

请不要提供if..then..else 类的解决方案。我想编写一个不需要更新的通用代码,因为在类 Calc 中添加了更多成员。

最佳答案

您不能动态修改 C++ 类型。但是,听起来您只是想要一种设置和读取属性的方法。您不需要为此修改您的类结构,还有其他替代解决方案。例如你可以使用 std::map:

class Calc
{
private:
std::map<std::string, int> attributes;
public:
Calc(){}

void setAttr(const std::string& name, int value){
attributes[name] = value;
}
int getAttr(const std::string& name){
return attributes[name];
}
};

关于c++ - 从字符串输入格式调用 C++ 成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855474/

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