C ++指向不同类型的指针

时间:2013-01-05 02:27:37

标签: c++ pointers

假设我在C++中有一个函数可以返回指向int,string或double的指针。这个函数的返回类型是什么?

我还想要一个变量,一旦函数返回它就可以存储该返回值。我应该只使用相同的类型吗?

2 个答案:

答案 0 :(得分:2)

唯一的匹配是void*

 void* pResult = foo();

要稍后使用该值,您必须转换为int*string*double*。所以你需要以某种方式跟踪实际类型。

答案 1 :(得分:2)

一种方式是void*方式,这在Philipp的回答中得到了证明

另一种方法是将您的类型封装在object中,该Object派生自某个公共基础对象(即Java中的QObjectQt中的QObject obj = foo(); ,让你的函数返回公共基础对象。

{{1}}

检查您正在使用的库,也许您可​​以使用一些现有的公共基类。

不过,我认为模板功能也是解决问题的好方法。