-4

マクロを使用せずに、2つの異なるデータ型に1つのコードを使用したいと思います。私はこのようなことを試みましたが、完全な解決策を思いつきませんでした。

void func(bool istype1, void *ptr)
{
    void *t1;
    if(isType1)
        t1=static_cast<type1>(ptr);
    else   // isType1 == false means data type 2.
        t1=static_cast<type2>(ptr);

    ...
    ...
    ...
}
4

1 に答える 1

6

テンプレートが必要です。あなたはどこかでそれらを読む必要があるでしょう。 http://www.cplusplus.com/doc/tutorial/templates/

あなたは次のような最大を実装することができます

template <class T>
T max(T one, T two)
{
   return one > two ? one : two;
}

これは、クラスを比較できるすべてのオブジェクトで機能します。Ints、float、さらには定義されたクラスを使用します。

于 2013-03-22T03:06:37.457 に答える