gpt4 book ai didi

C++。错误 : void is not a pointer-to-object type

转载 作者:IT老高 更新时间:2023-10-28 22:00:56 30 4
gpt4 key购买 nike

我有一个 C++ 程序:

struct arguments
{
int a, b, c;
arguments(): a(3), b(6), c(9) {}
};

class test_class{
public:

void *member_func(void *args){
arguments vars = (arguments *) (*args); //error: void is not a
//pointer-to-object type

std::cout << "\n" << vars.a << "\t" << vars.b << "\t" << vars.c << "\n";
}
};

编译时会报错:

error: ‘void*’ is not a pointer-to-object type

有人可以解释我做错了什么来产生这个错误吗?

最佳答案

您在将 void * 强制转换为具体类型之前取消引用它。你需要反过来做:

arguments vars = *(arguments *) (args);

这个顺序很重要,因为编译器不知道如何将 * 应用到 args(这是一个 void * 并且可以'不要被取消引用)。您的 (arguments *) 告诉它要做什么,但为时已晚,因为取消引用已经发生。

关于C++。错误 : void is not a pointer-to-object type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949761/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com