指向常量指针的指针

Yak*_*kov 1 c++ pointers const

我有一个函数const void* getData(),它返回一个指向常量数据的指针,const void* 我需要为这个函数写一个包装器,它得到一个(输出)参数,它应该返回上面的指针.

void wrapGetData([type] ppData) {
*ppData = getData();
}
Run Code Online (Sandbox Code Playgroud)

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

Naw*_*waz 5

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

void wrapGetData(void const * & ppData) 
{
    ppData = getData();
}
Run Code Online (Sandbox Code Playgroud)

请注意,输出参数&是必需的ppData.

您可以将此功能称为:

void const * output;

wrapGetData(output); 
Run Code Online (Sandbox Code Playgroud)

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

wrapGetData(&output); //if [type] = const void **
Run Code Online (Sandbox Code Playgroud)

注意const void*并且void const*是一样的.所以不要混淆语法.


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

wrapGetData(&output); //if [type] = const void **
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.