gpt4 book ai didi

c++ - 在 C++ 中使用函数作为类成员

转载 作者:行者123 更新时间:2023-11-28 06:24:52 25 4
gpt4 key购买 nike

本人Java出身,对C++、C有一定了解,但不深。我正在创建哈希表类,它将封装存储值和键。但问题是什么是更好的传递方法,例如,在将计算表中哈希键的构造函数自定义函数中。

在 java 中,我会使用函数(接口(interface))将其设置为类成员。在 C++ 中执行此操作的最佳做​​法是什么,使用函数指针作为成员?请建议如何实现。

最佳答案

C++ 的做法是使用可计算散列的可调用类型对您的类进行参数化:

template<class Key, class Value, class Hash> class hashtable;

这允许将任何可调用对象作为您的哈希函数,无论是普通函数还是仿函数对象。

然后在构造函数中传递可调用对象:

template<class Key, class Value, class Hash>
class hashtable
{
hashtable(Hash h);
};

这允许您在不创建新类的情况下指定不同的哈希函数。

最后,为了使hashtable的声明和构造更方便,我们指定了默认模板参数和构造函数参数:

template<class Key, class Value, class Hash = std::hash<Key> >
class hashtable
{
hashtable(Hash h = Hash());
};

关于c++ - 在 C++ 中使用函数作为类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28703563/

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