私はC++に少し慣れていませんが、可変引数の受け渡しに疑問が1つあります。以下のサンプルコードで述べたように(このコードはまったく機能しません。他の人が私の質問を理解するために、このように組み立てました)、1つのパラメーターと2つのパラメーター(パラメーターのオーバーロード)を持つ2つの関数funcがあります。mainからfuncを呼び出しています。その前に、2つのパラメーターまたは1つのパラメーターを呼び出す必要があるかどうかを確認しています。ここに問題があります。私は、elseifステートメントでそれぞれ2つの関数を呼び出すことができることを知っていますが、1つの関数だけで管理できるかどうかを知りたいと思っています。(以下のコードでは、intではなくstringを渡しています。これは、他の人が目的を理解するためだけのものです。
#include<iostream.h>
#include <string>
void func(int, int);
void func(int);
void main()
{
int a, b,in;
cout << "Enter the 2 for 2 arg, 1 for 1 arg\n";
cin << in;
if ( in == 2)
{
string pass = "a,b";
}
elseif ( in == 1)
{
string pass = "a";
}
else
{
return 0;
}
func(pass);
cout<<"In main\n"<<endl;
}
void func(int iNum1)
{
cout<<"In func1 "<<iNum1<<endl;
}
void func(int iNum1, int iNum2)
{
cout<<"In func2 "<<iNum1<<" "<<iNum2<<endl;
}