使用来自父 class 的变量
Using variables from parent class
我一直在尝试使用模板来实现堆栈。我的问题是在这种情况下如何使用父 class 的变量?
在这种情况下,我的编译错误是:'top, a, size' 未在此范围内声明。
template<class T>
class buffer
{
public:
T *a;
int top,i,size;
};
template<class T>
class Queue: public buffer<T>
{
public:
Queue(int siz)
{
a=new T[siz];
size=siz;
top=-1;
}
void push(T ele)
{
if(top!=size-1){a[++top]=ele;}
}
T pop()
{
return(a[top--]);
}
void print()
{
for(i=0;i<top;i++)
cout<<" "<<a[i];
cout<<endl;
}
};
要使它们成为依赖名称,您必须在前面使用 this->
或 buffer<T>::
。
所以
this->a = new T[siz];
this->size = siz;
this->top = -1;
我一直在尝试使用模板来实现堆栈。我的问题是在这种情况下如何使用父 class 的变量?
在这种情况下,我的编译错误是:'top, a, size' 未在此范围内声明。
template<class T>
class buffer
{
public:
T *a;
int top,i,size;
};
template<class T>
class Queue: public buffer<T>
{
public:
Queue(int siz)
{
a=new T[siz];
size=siz;
top=-1;
}
void push(T ele)
{
if(top!=size-1){a[++top]=ele;}
}
T pop()
{
return(a[top--]);
}
void print()
{
for(i=0;i<top;i++)
cout<<" "<<a[i];
cout<<endl;
}
};
要使它们成为依赖名称,您必须在前面使用 this->
或 buffer<T>::
。
所以
this->a = new T[siz];
this->size = siz;
this->top = -1;