gpt4 book ai didi

C++ 模板数组,传递类型

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:19 28 4
gpt4 key购买 nike

我正在为一个类(class)做一个项目,遇到了一些麻烦。我们的教授给了我们休闲代码

//myList.h file
template <class type>
class myList
{
protected:
int length; //the number of elements in the list
type *items; //dynamic array to store the elements

public:
~myList();
//destructor for memory cleanup
//Postconditions: Deallocates the memory occupied by the items array

myList();
//default constructor
//Postconditions: creates items array of size 0 and sets size to zero

myList(int n, type t);
//assignment constructor
//Postconditions: creates items array of size n and type t, sets length to n
}

然后我为 myList(int m, type t) 创建的构造函数代码是:

template <typename type>
myList<type>::myList(int n, type t)
{
length = n;
items = new t [n];
}

我认为应该可行,但我似乎遇到的问题是当我尝试在我的 main 中调用构造函数时

myList list2(4, int); 

我得到以下错误

In file included from testmyList.cpp:1:0:
myList.h: In constructor ‘myList<type>::myList(int, type)’:
myList.h:118:17: error: expected type-specifier before ‘t’
myList.h:118:17: error: expected ‘;’ before ‘t’
testmyList.cpp: In function ‘void test2()’:
testmyList.cpp:17:9: error: missing template arguments before ‘list2’
testmyList.cpp:17:9: error: expected ‘;’ before ‘list2’

任何帮助将不胜感激!!

最佳答案

new 需要一个类型。不是变量

template <typename type>
myList<type>::myList(int n, type t)
{
length = n;
items = new type[n];
}

注意类声明的注释是错误的。你应该:

myList(int n, type t);  
//assignment constructor
//Postconditions: creates items array of size n and type **type**, sets length to n

顺便说一句, t 未在您的构造函数中使用...我您在这里缺少一些初始化...

关于C++ 模板数组,传递类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264010/

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