如果我有一個簡單的程序如下: -從函數返回多個類型
class Program
{
public:
my_func(void) \\ What return type do I use here??
{
switch (i) \\ assume i comes from somewhere...
{
case 1:
{
Glue g;
g.init();
return g;
}
case 2:
{
Wood w;
w.init();
return w;
}
....
}
}
}
誰能告訴我怎樣才能設置此函數的返回類型爲中的一個創建的對象開關盒?另外由於時間限制,我不能使用new/delete來創建對象,或者我只是返回一個void * ptr。交換機中創建的對象足夠大,因此可以在每種情況下創建它們並返回對它們的引用,而不會超出範圍?
請一次只問一個問題。如果您有兩個問題,請創建兩個SO問題。 – cdhowie 2013-04-29 16:15:01
屬於另一個問題的第二個問題是在'my_func_2()'中返回一個懸而未決的非const引用。你認爲這個參考文獻是指什麼*回到呼叫方?仍然在努力處理第一個問題的實際嘗試,這看起來像試圖使用模板來提供重載(對於看起來你試圖完成的任務而言,它也不正確)。 – WhozCraig 2013-04-29 16:20:34
在網上搜索「C++ factory Example」。 – 2013-04-29 19:39:12