1) #include <stdarg.h> が必要です 2) 必ず第一引数は必要です。使用しなくても指定する必要があります 3) 引数の数は関数より取得できません。なんらかの方法でメソッドに知らせる必要があります
// ********************************************************* // 可変個の引数内に、内部変数と一致する値があるかどうか // 最初の引数は、可変個の引数の数を示します // ********************************************************* int Integer::IsList( int first, ... ) { va_list marker; int i,nCnt,ret; ret = 0; va_start( marker, first ); nCnt = 0; while( first > nCnt ) { i = va_arg( marker, int ); if ( i == this->nData ) { ret = 1; break; } nCnt++; } va_end( marker ); return ret; }
Integer a; a = 20; if ( a.IsList( 5, 0,1,2,20,1000 ) ) { printf( "一致\n" ); }