继承表达了一种is-a关系,而组合表达了一种has-a两个类之间的关系。
组合的一个示例是多边形。它具有有序的点序列。用 C++ 术语来说:
struct Polygon {
std::vector<Point> points;
};
Run Code Online (Sandbox Code Playgroud)
虽然 anlogic_error是 a exception:
struct logic_error : public exception {
};
Run Code Online (Sandbox Code Playgroud)