如何在对象内,数组内访问字符串?

时间:2019-04-30 03:15:28

标签: c++ arrays loops class

我正在尝试在对象数组中访问字符串的值。该字符串用于创建原始对象。

我有Camper类,它具有构造函数Camper(字符串名称); 然后,我从Camper类中创建了一个数组。我想编写一个if语句,以捕获“名称”字符串以与用户输入的字符串进行比较。

我的错误: E0711表达式必须具有布尔类型(或可转换为布尔)
C2451类型为'Camper'的条件表达式无效

我确定这些错误是指同一问题。

我对C ++还是很陌生,所以请让我知道您是否发现其他对您没有意义的东西,或者这是否行不通。谢谢。

void addPayment(Camper arr[]) {
    string name;
    cout << "   What is the camper's name?   ";
     cin >> name;
    Camper c = Camper(name);
    for (int i = 0; i < sizeof(arr); ++i) {

        if (arr[i] == c) {   // Here is where I have the bug
        c.pay();    // What should I use instead of arr[i]?
        }
    }
    cout << "   " << name << " has paid.";
}

2 个答案:

答案 0 :(得分:0)

数组被分解为函数参数中的指针。您的arr的类型为Camper*sizeof(arr)不返回您期望的值。您必须提供元素数量作为单独的参数。

答案 1 :(得分:0)

如果(arr [i] == c),您应该在Camper中覆盖您的'=='

Authorize