用C ++实现

时间:2014-03-21 10:24:45

标签: c++ oop uml

需要帮助理解"实现"与班级的关系。任何人都可以给我一个C ++示例吗?

我浏览了,我知道,实现接口的类是实现的一个例子。 我没有得到更好的画面。如何使用UML表示相同的内容?

由于

1 个答案:

答案 0 :(得分:4)

实现指定两种或更多种类型之间的合同。其中一种类型(此处为Interface Imammals)定义合约,另一种类型(Cat,Dog)承诺执行。

下面的代码是Realization的一个懒惰的例子......

#include<iostream>
using namespace std;

class IMammals{
public:
    virtual void walk() = 0;
};

class Cats: public IMammals {
public:
    void walk() {
        cout<< "Cat is walking" << endl;
    }
};

class Dogs: public IMammals {
public:
    void walk(){
        cout<< "Dog is walking" << endl;
    }
};

int main(void) {
    Cats aCat;
    Dogs aDog;
    IMammals *ptrMammals = NULL;

    ptrMammals = &aCat;
    ptrMammals->walk();

    ptrMammals = &aDog;
    ptrMammals->walk();

    return 0;
}

使用UML,实现用虚线箭头表示,该箭头指向类型二(Cat,Dog或Contractor)类到类型一类(IMammals或Contractee)。箭头的尖端是一个空的三角形。

                +-----------------+
                |      IMammals   |
                |-----------------|
                |                 |
    +---------|>|                 |<|--------+
    |           +-----------------+          |
    |                                        |
    |                                        |
+-----+-----+                            +-----+-----+
|    Cat    |                            |    Dog    |
|-----------|                            |-----------|
|           |                            |           |
+-----------+                            +-----------+