c++ - 指向常量的指针

标签 c++ pointers constants

我有一个函数const void* getData(),它返回一个指向常量数据的指针const void* 我需要为这个函数编写一个包装器,它获取一个(输出)参数,它应该在其中返回上述指针。

void wrapGetData([type] ppData) {
*ppData = getData();
}

[type] 应该是什么? void ** 不适用,因为 getData() 返回指向 const 的指针

最佳答案

如果getData()返回void const *,那么[type]应该是void const * & :

void wrapGetData(void const * & ppData) 
{
    ppData = getData();
}

注意&是必须的,因为ppData是输出参数。

你可以这样调用这个函数:

void const * output;

wrapGetData(output); 

这与您必须调用函数的其他解决方案有点不同:

wrapGetData(&output); //if [type] = const void **

请注意,const void*void const* 是同一回事。所以不要混淆语法。


这与您必须调用函数的其他解决方案有点不同:

wrapGetData(&output); //if [type] = const void **

希望对您有所帮助。

关于c++ - 指向常量的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183158/

相关文章:

c++ - 为什么带有 const 关键字的构造函数可以工作,而没有它就不行?

c++ - Linux 上的 Qt - 版本冲突?

c - 分配后它不会是相同的内存地址吗?

c++ - 为什么我的 while 语句不起作用?

c - 无法释放 C 中的 const 指针

c# - 在方法中使用 const 而不是变量的优点

c++ - 将 std::string 转换为 nsstring 问题

c++ - 可变参数模板的多重继承 : how to call function for each base class?

c++ - SFINAE 启用非模板成员函数

c - 指向指针参数数组的指针与本地