C++ ';T';未在此范围中声明
我正在写一个实现堆栈功能的程序。我的代码如下:C++ ';T';未在此范围中声明,c++,C++,我正在写一个实现堆栈功能的程序。我的代码如下: class StackOfNodees { private: Node<T>* m_top; int m_size; public: StackOfNodees(); bool isEmpty() const; int size() const; void push(T value); T pop(); }; 有人能帮忙吗?如果有人能解释一下模板是用来做什么的,那也太好了 你需
class StackOfNodees
{
private:
Node<T>* m_top;
int m_size;
public:
StackOfNodees();
bool isEmpty() const;
int size() const;
void push(T value);
T pop();
};
有人能帮忙吗?如果有人能解释一下模板是用来做什么的,那也太好了 你需要把
template <typename T>
模板
在类
语句之前。您需要将
template <typename T>
模板
在
类
语句之前。目前来看,StackOfNodes
不知道什么是T
。就编译器所知,T可以是任何东西。因此,您必须给StackOfNodes
一个模板类型T
,以便它可以在类中引用它
例如,代码如下所示:
template<class T>
class StackOfNodes
{
... // code
};
模板
节点类
{
…//代码
};
即使
节点
有一个类型T,但堆栈节点
没有。在添加模板类型之前,编译器不能假设任何内容。一旦添加了它,代码应该编译(关于提到T的错误)就目前而言,StackOfNodes
不知道什么是T
。就编译器所知,T可以是任何东西。因此,您必须给StackOfNodes
一个模板类型T
,以便它可以在类中引用它
例如,代码如下所示:
template<class T>
class StackOfNodes
{
... // code
};
模板
节点类
{
…//代码
};
即使
节点
有一个类型T,但堆栈节点
没有。在添加模板类型之前,编译器不能假设任何内容。一旦添加了它,代码应该编译(关于提到T的错误)您需要在类中添加模板声明,以便它知道T是什么。。。或写入节点*m_top代码>无论你打算在那里做什么。我的.hpp文件中有这些。我将把它添加到op中。您需要在类中添加模板声明,以便它知道T是什么。。。或写入节点*m_top代码>无论你打算在那里做什么。我的.hpp文件中有这些。我将把它添加到op.which class语句中class StackOfNodes
?是的,请参见Alejandro Lucena
的回答哪一类声明class StackOfNodes
?是的,请参见Alejandro Lucena的答案