c++ - 如何使用字符串名称而不是变量?

标签 c++ c function variables

假设我有以下函数并且想比较作为变量的 field 和作为值的 value。我该怎么做?

bool ReadFile::compareField(string field, string value)
{
    if (field == "value")
}

最佳答案

如果您在谈论 C++,那么答案是:您不能。变量是编译时的东西;它们在运行时不存在。

如果您想以字符串形式访问参数,那么您可以考虑使用例如一个 std::map:

class MyClass
{
private:
    std::map<std::string, int> params;

public:
    MyClass()
    {
        params["height"] = 165;
        params["weight"] = 65;
        params["legs"]   = 2;
    }

    int getParam(const std::string &str) const
    {
        return params[str];
    }
};

关于c++ - 如何使用字符串名称而不是变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8544497/

相关文章:

c++ - 有没有可以为 ubuntu 编译代码的在线、基于 html/flash/js 的免费 C++ 编辑器?

c++ - 传入并存储指向对象的函数指针

c++ - 流操作符

C:将子字符串存储在字符串数组中

c - 如何重置函数中的结构?

c - 如何使用指针和 malloc 将字符存储到数组中?

c - OpenGL 库的描述以及所有函数的作用

c++ - 在 QApplication 中使用可视化检漏仪

C编程二维数组malloc : Interesting values after every row. 求解释

c - STM32嵌入式内存溢出/泄漏检测