c++ - 有没有办法根据用户的输入访问类对象的信息?

标签 c++

希望这个问题之前没有得到解答,环顾四周也没有找到。想知道如何根据用户输入访问特定的类对象。有点类似于您将根据用户的输入访问数组特定索引的值并转到该索引。

我不完全确定我会看到什么,因为没有像数组中那样的可访问整数。对于编程来说还比较陌生,如果我说的不对,请见谅。

class Hams {
public:
    string name;
};

int main()
{
    int userNum;

    Hams ham1;
    ham1.name = "Porky";

    Hams ham2;
    ham2.name = "Wilbur";

    Hams ham3;
    ham3.name = "Piglet";

    cout << "Enter num of pig you want to know the name of: ";
    cin >> userNum;


    //Output the correct name
}

如果用户输入 3,那么输出应该是“Piglet”。

cout << ham(userNum).name << endl;

我知道这段代码不正确,但它是我如何最好地表达我想做的事情。

除了像下面这样的 if 语句之外,有没有办法做到这一点或类似的事情?

if (userNum == 3) {
print(ham3.name);
}

最佳答案

这是一种方法:

    std::array<std::string, 3> pigs = {"Porky", "Wilbur", "Piglet"};

    int userNum;
    std::cout << "Enter num of pig you want to know the name of: ";
    std::cin >> userNum;

    std::cout << pigs[userNum-1] << std::endl;

编辑* 为了更准确地说明您的用例,这是另一个示例:

class Hams {
  public:
    std::string name;
};

int main()
{

    std::array<Hams, 3> pigs = {"Porky", "Wilbur", "Piglet"};

    int userNum;
    std::cout << "Enter num of pig you want to know the name of: ";
    std::cin >> userNum;

    std::cout << pigs[userNum-1].name << std::endl;

}

关于c++ - 有没有办法根据用户的输入访问类对象的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56695279/

相关文章:

c++ - 如何在 C++ 中异步处理 native 套接字上的 https 请求响应

c++ - 用于测试任意方法是否存在的 std::is_invocable 语法(不仅仅是 operator())

c++ - 为什么我不能创建一个 TSubclassOf<> 在 SpawnActor() 函数中使用?

c++ - 在 lex 文件中声明 hash_map 时出错

c++ - SSE 添加比 + 运算符慢

c++ - 如何使用 zlib 压缩缓冲区?

c++ - 在 ViennaCL 中从 std::vector 转换为 ublas::compressed_matrix

c++ - 段错误 : stack overflow

c++ - 在小端和大端上进行位移

c++ - 计算某些单词在 C++ 中的文本文件中出现的次数