has_a / is_a
组合,黑箱(彼此之间互不敢干涉),降低耦合度
继承,白箱
//is_a 是一种 继承
class A
{
public:
void Eat()
{}
void Foot()
{}
void Sleep()
{}
};
class Person : public A
{};
class Dog : public A
{};
//has_a 是一部分 组合
class E
{};
class D
{};
class T
{};
class Car
{
public:
E e;
D d[2];
T t[4];
};