c++中组合的方式是什么

来源:百度知道 编辑:UC知道 时间:2024/05/18 17:05:46
类之间的继承关系可以用组合的方式编写书上说
但是什么是组合的方式?

class Person{
public run(){...}
};
class Student : Person{
};
这叫继承。但是这样会有很多问题,派生类和基类被紧紧的绑在一起,高度耦合。
class Runable {
public run(){...}
};
class Student {
private:
Runable* pRun;
public:
Student() { pRun = new Runable; }
run() { pRun->run(); }
};
这叫组合。当然这只是个简单的例子,从这个例子几乎看不出组合的优越性,不过在很多情况用组合代替继承会带来很大灵活性。
比如:设计模式中的策略模式就是一个很经典的例子。