has-a:组合关系
class one{..};
class two
{
private:
class one;
};
is-a就是继承关系
class base{..};
class drivate :public base{..};
use-a 关系
class other
{
//...
public:
void func();
};
class another{
public:
void test(const other & o) { o.func();};
};
use-a关系:
如果类A与类B是 use-a关系,则A具有类型为B,B&, const B&, B*, const B*的一个成员,或者是可以轻易以上述对象之一。
返回一个B的函数。于是A可以使用B的程序和数据
has-a关系:
has-a类似于 use-a,不同之处在于,A负责构建和销毁B并在它的生存期使用它。
is-a关系:
如果类A和类B是use-a 关系,则B必须是A的抽象,is-a关系通常出现在公共派生C++中
实现关系
如果类A与接口M是实现关系,则它实现了M所有的纯虚函数。