多层派生类
基类↓(public)
派生类1
↓(public)
派生类2
↓(public)
......
↓(public)
派生类N
请问一下,例如基类中有个成员函数,派生类1中没有这个函数,那么有派生类1所派生的派生类2能否使用这个成员函数。
看不懂我问什么的话,请看以下的例子。。。问题在注释那一行
#include<iostream.h>
#include<stdlib.h>
const int LEN=50;
class Stack
{
protected:
int head;
int stack[LEN];
public:
Stack(){head=0;};
void push(int val)
{
head++;
stack[head]=val;
}
int POP()
{
int temp;
temp=stack[head];
head--;
return temp;
}
};
class op_stack:public Stack
{
public:
int push(int val)
{
if(head>LEN)
{
cout<<"Stack underflow!"<<endl;
exit(1);
}
return Stack::POP();
}
};
class use_stack:public op_stack
{
public:
void ProduceStack()
{
int val;
cout<<"Input data:";
cin>>val;
while((val<0)||(val>100))
{
cout<<"Input Error!"<<endl;
cout<<"Please input again:";
cin>>val;
}
op_stack::push(val);
}
};
void main()
{
use_stack A;
op_stack B;
A.ProduceStack();
A.ProduceStack();
cout<<"\n"<<B.POP()<<endl;//这里为什么不能A.POP()
cout<<"\n"<<B.POP()<<endl;//
}
[ 本帖最后由 XIAO荣 于 2009-8-17 16:59 编辑 ]