2013-01-05 150 views
0

假設我在C++中有一個函數,它可以返回一個指向int,string或double的指針。這個函數的返回類型是什麼?指向不同類型的C++指針

我還想要一個變量,可以存儲返回值,一旦函數返回它。我應該使用相同的類型嗎?

+0

返回類型是'void *'。 – axiom

回答

2

唯一的匹配是void*

void* pResult = foo(); 

要在以後使用的值,你將不得不轉換爲int*string*double*。所以你需要以某種方式跟蹤實際的類型。

2

一種方式是被證明了菲利普的回答void*方式

另一種方法是封裝在一個object從一些共同的基本對象(即JavaObjectQObjectQt)派生的類型,並讓你的函數返回公共基礎對象。

QObject obj = foo();

檢查您所使用的庫,也許還有你可以使用一些現有的公共基礎課。

順便說一句,我認爲模板功能也是解決您的問題的好方法。