gpt4 book ai didi

c++ - 传递给构造函数的函数指针赋值时出现类型转换错误

转载 作者:行者123 更新时间:2023-11-30 02:33:07 24 4
gpt4 key购买 nike

我正在尝试一些新的东西,希望一些老手能指导我走上正确的道路。我做了研究,但找不到答案。

我正在尝试使用类的构造函数声明一个函数指针。我收到错误:

cannot convert 'int(**)()' to 'int(*)()' in assignment

这是我的代码:

class A
{
public:
A(int (*ptr1)());
void update();
private:
int (*_ptr2)();
};

A::A(int(*ptr1)()){
_ptr2 = &ptr1;
}

void A::update()
{
int result = _ptr2();
}

最佳答案

你只要

_update_method = func;

那里,没有&


_update_method = &func;

实际上取的是 int(*func)() 参数的地址,而不是传递的函数指针。因此编译器正确地提示类型不匹配。

关于c++ - 传递给构造函数的函数指针赋值时出现类型转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35780098/

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