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,因为如果这样做,数据将会丢失。此外,即使返回类型如此重载,功能也不会真正改变,这似乎很愚蠢。那么,这应该是模板函数还是我需要做的其他事情?

谢谢,

4

1 回答 1

0

如果返回指针或引用S,就不会有拼接问题:

S* func()
{ ... }

请注意,您必须动态分配变量。

于 2014-06-16T21:38:49.707 回答