多态形成条件
- 父类中有虚函数
- 子类覆写了父类的虚函数
- 子类指针或引用赋值给父类对象,条用覆写的公共接口
多态案例
#include <iostream>
using namespace std;
class Book
{
public:
Book(int pg = 0)
:page(pg){}
virtual void getBook()
{
cout << page << endl;
}
//为了形成完整的析构
virtual ~Book()
{}
protected:
int page;
};
class StoryBook:public Book
{
public:
StoryBook(int pg, string pic)
:Book(pg), pic(pic){}
virtual void getBook()
{
cout << page << endl;
cout << pic << endl;
}
protected:
string pic;
};
int main()
{
StoryBook sb(100, "mei nv");
Book *b = &sb;
b->getBook();
return 0;
}
工程设计原则依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象
案例:听妈妈讲故事
#include <iostream>
u