可変個の引数を持つメソッド

  va_arg、va_end、va_start



  
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" );
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ