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

C++ C++;指向不同类型的指针,c++,pointers,C++,Pointers,假设我在中有一个函数,它可以返回指向int、string或double的指针。此函数的返回类型是什么 我还想要一个变量,它可以在函数返回返回值时存储该返回值。我应该使用相同的类型吗?唯一匹配的是void* void* pResult = foo(); 要在以后使用该值,必须强制转换为int*、string*或double*。因此,您需要以某种方式跟踪实际类型。唯一匹配的是void* void* pResult = foo(); 要在以后使用该值,必须强制转换为int*、string*或d

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


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

唯一匹配的是
void*

 void* pResult = foo();

要在以后使用该值,必须强制转换为
int*
string*
double*
。因此,您需要以某种方式跟踪实际类型。

唯一匹配的是
void*

 void* pResult = foo();

要在以后使用该值,必须强制转换为
int*
string*
double*
。因此,您需要以某种方式跟踪实际类型。

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

另一种方法是将您的类型封装在一个
对象
中,该对象派生自某个公共基础对象(即
Java
中的
对象
Qt
中的
QObject
),并让您的函数返回公共基础对象

QObject obj=foo()

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


顺便说一句,我认为模板函数也是解决问题的好方法。

一种方法是
void*
方法,这在Philipp的回答中得到了演示

另一种方法是将您的类型封装在一个
对象
中,该对象派生自某个公共基础对象(即
Java
中的
对象
Qt
中的
QObject
),并让您的函数返回公共基础对象

QObject obj=foo()

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


顺便说一句,我认为模板函数也是解决问题的好方法。

返回类型为
void*
。返回类型为
void*