我正在尝试在对象数组中访问字符串的值。该字符串用于创建原始对象。
我有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.";
}
答案 0 :(得分:0)
数组被分解为函数参数中的指针。您的arr
的类型为Camper*
。 sizeof(arr)
不返回您期望的值。您必须提供元素数量作为单独的参数。
答案 1 :(得分:0)
如果(arr [i] == c),您应该在Camper中覆盖您的'=='
Authorize