首先,如果这个问题的标题含糊不清,请允许我道歉。
那就是说,我试图编写一个函数,它将根据函数内的条件返回多种数据类型中的任何一种(全部由我定义)。从本质上讲,我试图做的是:
{
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,因为如果我这样做,数据就会丢失。此外,即使返回类型如此重载,功能也不会真正改变,这似乎是愚蠢的。那么,这应该是一个模板函数还是我需要做的其他事情呢?
谢谢,
答案 0 :(得分:0)
如果您返回指向S
的指针或引用,则不会出现拼接问题:
S* func()
{ ... }
请注意,您必须动态分配变量。