gpt4 book ai didi

C++类模板错误

转载 作者:行者123 更新时间:2023-11-28 02:26:40 25 4
gpt4 key购买 nike

当我尝试使用类的构造函数时,出现以下错误:

error C2955: 'myQueue' : use of class template requires template argument list

error C2512: 'myQueue' : no appropriate default constructor available.

这是一个头文件:

#ifndef myQueue_
#define myQueue_

template<typename type>
class myQueue{
public:
myQueue();
~myQueue();
type dequeue();
void enqueue(type t);
private:
int size;
type* arr;
int curSize;
};
#endif

这是一个cpp文件。

#include "myQueue.h"
#include "genlib.h"

template<typename type>
myQueue<type>::myQueue()
{
size = 10;
arr = new type[size];
}
template<typename type>
myQueue<type>::~myQueue()
{
delete arr[];
arr = NULL;
}

尝试在这里使用这个类。

 int main(){
myQueue a = new myQueue();
}

最佳答案

正如 Wojciech Frohmberg 所解释的那样,您必须在 *.h 文件而不是 *.cpp 文件中定义类,因为代码在使用特定类型调用时会真正编译。

而且你的 main 是错误的。

int main(){
myQueue<YourType>* a = new myQueue<YourType>; // for pointer
myQueue<YourType> b; // for instance
}

关于C++类模板错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412819/

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