面向对象

2017-12-15  本文已影响0人  qyfl

面向对象

Composition(组合),表示 has-a

class B 中有一个 A 的 object

创建 B 的对象的时候会默认调用 A 的构造函数,如果需要调用 A 的有参数的构造函数,需要指明。

class A{
private:
    ...
public:
    A() { ... }
    A(int a) { ... }

    ...
};

class B{
private:
    A a;

public:
    B(int a) : A(a) {
        ...
    }

    ...
};

Inheritance(继承),表示 is-a

class B 是一种 A

// 例如:A 表示鸟
class A {
    ...
};

// 例如:B 表示鹦鹉
class B : public A {
    ...
}

Delegation(委托) Composition by reference

编译防火墙,当 A 改动的时候,编译的时候无需再次编译 B,只需要编译 A 就好了。

class A {
    ...
};

class B {
private:
    A* a;

    ...
};
上一篇下一篇

猜你喜欢

热点阅读