gpt4 book ai didi

使用模板的 C++ 方法定义

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:19 24 4
gpt4 key购买 nike

我是全职 C++ 编程的新手,所以我试图更好地理解各种事物所涉及的细微差别。

我在一个小项目中使用模板,主要是在我学习的过程中编写代码,我遇到了一些我不太确定的事情。 Visual Studio 帮助我生成了(在我的 .h 文件中的 .cpp 文件中)与此等效的代码:

template<class T>
PriorityQueue<T>::ClimbDownHeap(const int currentNodeIndex)
{
}

template<class T>
PriorityQueue<T>::GetRightNodeIndex(const int currentNodeIndex)
{
}

我的印象是这同样有效:

template <class T>
class PriorityQueue
{
public:
ClimbDownHeap(const int currentNodeIndex)
{

}
private:
GetRightNodeIndex(const int currentNodeIndex)
{
}
};

我的理解可能有误,但至少到目前为止,两者似乎都可以编译。这两种风格之间有什么显着差异吗?我更喜欢第二个,因为它对我来说更干净、更清晰。它们之间的细微差别是什么?

注意:在颠簸的火车上输入此代码,因此我对格式问题或代码不清晰表示歉意(我是凭内存输入的;它不准确)。

最佳答案

如果你想使用来自其他文件的模板类,你的模板代码必须放在头部。放入源文件有效地使其成为私有(private)的(通过使链接不可能)。

正如 James 在评论中提到的,阅读详细的解释和示例 here .

关于使用模板的 C++ 方法定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709298/

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