class mypair {
T a, b;
public:
mypair (T first, T second)
{a=first; b=second;}
T getmax ();
};
template <class T>
T mypair<T>::getmax ()
{
T retval;
retval = a>b? a : b;
return retval;
}
int main () {
int i;
cin>>i;
if(i==0)
mypair <int> myobject (100, 75);
else
mypair <float> myobject (100, 75);
cout << myobject.getmax();
return 0;
}
i の値に基づいて、テンプレート クラスの単一のオブジェクトを作成したいと考えています。i の値が 0 の場合、データ型 int else float のテンプレート クラスを作成します。上記のプログラムは、getmax 関数を呼び出す最後の 2 行目で、「myobject」がこのスコープで宣言されていないというエラーをスローします。
どうすればそれを達成できますか>