继承的类型兼容性原则
#include <iostream>
using namespace std;
class Parent
{
public:
Parent();
~Parent();
void printP()
{
cout << "我是基类。。。" << endl;
}
private:
int a;
};
class Child :public Parent
{
public:
Child();
~Child();
void printC()
{
cout << "我是派生类。。。" << endl;
}
private:
int c;
};
Child::Child()
{
}
Child::~Child()
{
}
Parent::Parent()
{
}
Parent::~Parent()
{
}
void howToPrint(Parent* base)
{
base->printP();
}
void howToPrint2(Parent& base)
{
base.printP();
}
int main()
{
Parent p1;
p1.printP();
Child c1;
c1.printC();
c1.printP();
Parent* p = NULL;
p = &c1;
p->printP();
howToPrint(&p1);
howToPrint(&c1);
howToPrint2(p1);
howToPrint2(c1);
Parent p3 = c1;
return 0;
}