刚开始写这个程序的时候,试了半天,如果把基类的私有数据不改成protected。那么在派生类中就没办法用基类的虚函数。
想了半天,突然想到了强制类型转换。
#include<iostream>
const int size=2;
using namespace std;
class A
{
private:
int x;
public:
A(int g=0):x(g) {}
friend ostream& operator<<(ostream& os,const A y)
{
os<<y.x;
return os;
}
virtual ~ A(){}
};
class B:public A
{
private:
int y;
public:
B(int d=1,int s=2):A(d),y(s)
{}
friend ostream& operator<<(ostream& os,const B pp)
{
os<<(A)pp<<endl<<pp.y;
return os;
}
};
int main()
{
A sdk=45;
B stk(45,67);
cout<<stk;
return 0;
}