C++实现

Sta*_*kIT 3 c++ oop uml

需要帮助理解与类的“实现”关系。任何人都可以给我一个关于此的 C++ 示例吗?

我浏览了一下,发现实现接口的类就是一个实现的例子。我没有拍到更好的照片。我如何使用 UML 来表示相同的内容?

谢谢

小智 6

实现指定两个或多个类型之间的契约。其中一种类型(此处为“哺乳动物接口”)定义合约,另一种类型(猫、狗)承诺执行。

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

#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;
}
Run Code Online (Sandbox Code Playgroud)

使用 UML,实现由虚线箭头表示,该箭头从类型二(猫、狗或承包商)类指向类型一类(IMammals 或 Contractee)。箭头的尖端是一个空三角形。

                +-----------------+
                |      IMammals   |
                |-----------------|
                |                 |
    +---------|>|                 |<|--------+
    |           +-----------------+          |
    |                                        |
    |                                        |
+-----+-----+                            +-----+-----+
|    Cat    |                            |    Dog    |
|-----------|                            |-----------|
|           |                            |           |
+-----------+                            +-----------+
Run Code Online (Sandbox Code Playgroud)