gpt4 book ai didi

c++ - 在类中使用不同的模板参数

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

对于一个类的不同功能,模板的参数是否允许不同?例如,如果我有一个类:

template <class T, class Comparator>
class example {
public:
void shift(std::vector<T>& a, T low, T, high);
void heapSort(std::vector<T>& a, T size, Comparator comp);
};

我可以这样做吗:

template <class T>
void example::shift(std::vector<T>& a, T low, T, high)

和:

template <class T, class Comparator>
void example::heapSort(std::vector<T>& a, T size, Comparator comp)

因为移位函数不需要比较器类型?

最佳答案

是的,你只需要使 heapSort 成为一个模板函数,它有自己的 Comparator 模板参数:

template <class T>
class example {
public:
void shift(std::vector<T>& a, T low, T high);

template <class Comparator>
void heapSort(std::vector<T>& a, T size, Comparator comp);
};

template <class T>
void example<T>::shift(std::vector<T>& a, T low, T high) {
// ...
}

template <class T>
template <class Comparator>
void example<T>::heapSort(std::vector<T>& a, T size, Comparator comp) {
// ...
}

请注意,heapSort 的定义有两行 template — 一行用于类,一行用于函数。它是模板中的模板。

关于c++ - 在类中使用不同的模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924114/

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