C ++函数返回不同的数据类型

时间:2014-06-16 21:35:14

标签: c++ template-function

首先,如果这个问题的标题含糊不清,请允许我道歉。

那就是说,我试图编写一个函数,它将根据函数内的条件返回多种数据类型中的任何一种(全部由我定义)。从本质上讲,我试图做的是:

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

谢谢,

1 个答案:

答案 0 :(得分:0)

如果您返回指向S的指针或引用,则不会出现拼接问题:

S* func()
{ ... }

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