【发布时间】:2016-03-11 01:47:07
【问题描述】:
我正在尝试利用多态性。基本上,代码中间缺少一个类名。由于我不习惯模板,有人可以给我一个线索吗?谢谢
#ifndef TEMPLATE_H``
#define TEMPLATE_H
using namespace std;
template <class T>
class Template
{
public:
Template(int);
virtual ~Template();
virtual void push(T val);
T pop;
virtual bool isFull();
virtual bool isEmpty();
virtual void sizeOf(T val) ;
protected:
private:
int top,size;
};
#endif // TEMPLATE_H
#ifndef STACK_H
#define STACK_H
/***LIFO***/
using namespace std;
template <class S>
class stack: public Template{ // HERE, it says it's missing an expected class
-name before {
public:
stack();
virtual ~stack();
protected:
private:
};
#endif // STACK_H
【问题讨论】:
-
你不能从
Template继承,因为Template不是一个类。您可以从Template<int>、Template<std::string>、Template<S>等继承。 -
应该是
template <class S> class stack: public Template<S> { // ...
标签: c++ class templates polymorphism