说人话:抽象类统一接口,子类用这个统一的接口实现不同的行为,用户根据实际场景选择相应的行为
选择排序算法:
.h
class AbstractMethod
{
public:
virtual void PaiXu() = 0;
};
class MaoPao :public AbstractMethod
{
public:
virtual void PaiXu() override;
};
class XuanZe :public AbstractMethod
{
public:
virtual void PaiXu() override;
};
class Guest
{
public:
Guest(AbstractMethod* AM);
void chooseMethod();
private:
AbstractMethod* AM;
};
.cpp
int main()
{
MaoPao* MP = new MaoPao;
XuanZe* XZ = new XuanZe;
Guest* G1 = new Guest(MP);
Guest* G2 = new Guest(XZ);
G1->chooseMethod();
G2->chooseMethod();
delete MP;
delete XZ;
delete G1;
delete G2;
return 0;
}
void MaoPao::PaiXu()
{
cout << "冒泡排序算法!" << endl;
}
void XuanZe::PaiXu()
{
cout << "选择排序算法!" << endl;
}
void Guest::chooseMethod()
{
this->AM->PaiXu();
}
Guest::Guest(AbstractMethod* AM)
{
this->AM = AM;
}