首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解带返回类型void *的C++函数

理解带返回类型void *的C++函数
EN

Stack Overflow用户
提问于 2022-11-21 00:49:35
回答 1查看 76关注 0票数 0

我是在虚拟引擎C++工作,并希望获取一个静态网格的顶点法线。为此,我使用了GetTangentData()方法,该方法属于FStaticMeshVertexBuffer类(链接)。

GetTangentData()方法在文档中定义了两种方法(link1link2):

void * GetTangentData()

const void * GetTangentData() const

我的理解是,这是一个getter函数。但是,我不知道为什么它有一个空指针返回类型。下面一行编译,但我不确定如何访问数据:

void* TangentData = StaticMeshVertexBuffer->GetTangentData();

Q1.有空指针返回类型的原因是什么?

Q2.如何才能从这样的返回中访问数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 01:19:12

Q1.为什么会有一个空指针返回类型?

void*是指向某物的指针,但它是未知的。因此,void*具有一定程度的灵活性,因此可以将其转换为多种类型的指针。例如,malloc有一个返回类型的void*,因为它应该用于为所有类型的指针分配内存。在C++中,我们可以编写函数重载代码,因为存在模板,所以void*更像是C类。在C++中使用它来保持与C的向后兼容性,用于设计用于C++和C的库。

Q2.如何才能从这样的返回中访问数据?

你把它打出来:

代码语言:javascript
运行
复制
void* void_ptr = func_that_returns_void_ptr();
char* char_ptr_typecast = (char*) void_ptr;
std::cout << char_ptr_typecast << '\n';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74513172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档