gpt4 book ai didi

C++模板实例化指针空错误

转载 作者:行者123 更新时间:2023-11-28 00:39:32 24 4
gpt4 key购买 nike

我想编写自己的堆栈版本,这就是我所拥有的:

template<class myStackType> class myStackClass
{
myStackType array[1000];
int size;
public:
myStackClass()
{
size = 0;
}
void pop()
{
size--;
}
void push(myStackType a)
{
array[size] = a;
size++;
}
myStackType top()
{
return array[size-1];
}
bool empty()
{
return(size == 0);
}
};

但当我尝试实际使用它时

struct grade
{
int mid;
int final;
string name;
grade(int mid1 = 0, int final1 = 0, string name1 = 0)
{
mid = mid1;
final = final1;
name = name1;
}
};

myStackClass<grade> myStack;

我得到一个调试断言失败:无效的空指针

另一方面,std::stack 在具有相同数据类型的同一位置工作得很好

我做错了什么?

谢谢!

最佳答案

这是错误的:

string name1 = 0

它试图从 const char* 构造一个 string,这是 0 - 这是不允许的。你的意思可能是:

string name1 = ""

关于C++模板实例化指针空错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550173/

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