0

まず、この質問のタイトルがあいまいな場合はお詫び申し上げます。

つまり、関数内の条件に基づいて、多数のデータ型 (すべて私が定義したもの) のいずれかを返す関数を作成しようとしています。本質的に、私がやろうとしていることはこれです:

{
    A itemA;
    B itemB;
    C itemC;

    ...

    Do some calculations

    ...

    if (some condition)
        return itemA;
    else if (some other condition)
        return itemB;
    else
        return itemC;
}

もちろん、この例は少しわざとらしいですが、私の言いたいことは通じると思います。

クラス A、B、および C はすべて、他のクラス S の子クラスですが、S を返すとデータが失われるため、S を返したくありません。さらに、戻り値の型がオーバーロードされても機能は実際には変わりません。それでは、これはテンプレート関数である必要がありますか、それとも他に何かする必要がありますか?

ありがとう、

4

1 に答える 1

0

へのポインターまたは参照を返す場合S、スプライシングの問題は発生しません。

S* func()
{ ... }

変数を動的に割り当てる必要があることに注意してください。

于 2014-06-16T21:38:49.707 に答える