gpt4 book ai didi

c++ - 什么是 foo*(*)?

转载 作者:行者123 更新时间:2023-12-02 19:04:06 25 4
gpt4 key购买 nike

在一个项目中,我遇到了以下代码行。

::std::unordered_map<std::string, Channel*(*)(Module*, const Parameters&)>;

有谁知道 Channel*(*) 是什么意思?与 Channel** 相同吗?对我来说这似乎令人困惑且过于复杂。

channel 构造函数如下所示:

Channel(Module* module, const util::Parameters& parameters);

最佳答案

这个:

Channel*(*)(Module*, const Parameters&)

是指向一个函数的指针,该函数采用 Module*constParameters& 作为参数并返回 Channel*

有关更多详细信息,请参见此处:https://en.cppreference.com/w/cpp/language/pointer

函数指针看起来相当吓人,而别名使它们的使用变得更加简单:

using fun = Channel*(Module*, const Parameters&);
fun* x = &some_function_with_right_signature;
// or
::std::unordered_map<std::string,fptr>;

关于c++ - 什么是 foo*(*)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65305737/

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