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

C++ pointers to different types

本文关键字:指针 同类型 C++      更新时间:2023-10-16

假设我在C++中有一个函数,它可以返回指向整数、字符串或双精度的指针。此函数的返回类型是什么?

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

唯一的匹配项是 void*

 void* pResult = foo();

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

一种方法是菲利普回答中展示的void*方式

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

QObject obj = foo();

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

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