有没有一种方法可以根据用户的输入来访问类对象的信息?

时间:2019-06-21 00:01:53

标签: 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);
}

1 个答案:

答案 0 :(得分:3)

这是一种实现方式:

    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;

}