继承问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承问题?相关的知识,希望对你有一定的参考价值。
所以我试图创建一个从链表类继承成员函数的堆栈类。链表类没有自己的实际实现;它本质上是一个抽象的虚拟类。两者都是模板类。当我尝试使用我的派生堆栈类访问成员函数时,我收到“没有在类'Stack'中声明的成员函数”错误。以下是我的代码。我不确定是什么问题。我在堆栈类的声明中包含了.h文件的名称以及:public List序列。请帮忙!如果您需要更多代码来回答这个问题,请告诉我!谢谢!
List父类的声明代码
#ifndef LIST221_H
#define LIST221_H
#include "Node221.h"
template <typename T>
class List221 {
public:
List221();
~List221();
virtual int size() const;
virtual bool empty() const;
virtual bool push(T obj); //will push in a new node
virtual bool pop(); //will pop off the top node
virtual bool clear();
protected:
private:
Node<T>* front;
Node<T>* rear;
};
#endif
Stack类的声明代码。包括List.h文件
#include "List221.h"
#include "Node221.h"
template <typename T>
class Stack221 : public List221 <T> {
public:
Stack221();
~Stack221();
T top();
private:
Node<T>* topnode;
};
我尝试访问的List类的成员函数示例。还包括页面顶部的List.h.
template <typename T>
bool Stack221<T>::push(T obj) {
Node<T>* o = new Node(obj);
if (topnode == nullptr) {
topnode = o;
}
else {
o->next = topnode;
topnode = o;
}
return true;
}
显示错误
error: no ‘bool Stack221<T>::push(T)’ member function declared
in class ‘Stack221<T>’
bool Stack221<T>::push(T obj) {
^
答案
您似乎已经提供了Stack221<T>::push
的实现,但是您没有在类声明中声明该方法。
以上是关于继承问题?的主要内容,如果未能解决你的问题,请参考以下文章
26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段