gpt4 book ai didi

c++ - C++ 中函数指针的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:16 25 4
gpt4 key购买 nike

我打算使用函数指针在一个类中实现不同的函数。但是,我在尝试实现这样一个功能时遇到了一些麻烦。

代码在这里:

std::vector<int> * (*create_vector)()
{
std::vector<int> * vec_p = new std::vector<int>;
return vec_p;
}

报错如下:

3: [Error] expected primary-expression before '*' token
3: [Error] 'vec_p' was not declared in this scope
3: [Error] expected '}' before ';' token
4: [Error] expected unqualified-id before 'return'
5: [Error] expected declaration before '}' token

我对函数指针有什么误解,还是其他问题?

最佳答案

std::vector<int> * (*create_vector)()声明一个指向函数的指针。一个指针。不是函数。你不能继续使用指针并假装它是一个函数并定义它的主体。您需要分别声明两者:

std::vector<int> * create_vector()
{
std::vector<int> * vec_p = new std::vector<int>;
return vec_p;
}

std::vector<int> * (*pcreate_vector)() = create_vector;

关于c++ - C++ 中函数指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14770060/

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