Класс:
class foo{
public:
int data;
};
Теперь я хочу добавить метод к этому классу, чтобы сделать некоторое сравнение, чтобы увидеть, равно ли его данные одному из заданных чисел.
Конечно, я могу написать if(data==num1|| data == num2|| data ==num3.....)
, но, честно говоря, я чувствую себя больным, когда пишу data ==
каждый раз, когда сравниваю его с числом.
Итак, я надеюсь, что смогу написать что-то вроде этого:
if(data is equal to one of these(num1,num2,num3,num4,num5...))
return true;
else
return false;
Я хочу реализовать этот оператор, data is equal to one of these(num1, num2, num3, num4, num5...)
Вот мой подход:
#include <stdarg.h>
bool is_equal_to_one_of_these(int count,...){
int i;
bool equal = false;
va_list arg_ptr;
va_start(arg_prt,count);
for(int x=0;x<count;x++){
i = va_arg(arg_ptr,int);
if( i == data ){
equal = true;
break;
}
}
va_end(arg_ptr);
return equal;
}
Этот кусок кода выполнит эту работу для меня. Но каждый раз, когда я использую этот метод, мне придется подсчитывать параметры и передавать их.
Есть ли у кого-то лучшее представление?