【问题标题】:Realization in C++C++中的实现
【发布时间】:2014-04-28 15:56:45
【问题描述】:

在理解与类的“实现”关系方面需要帮助。谁能给我一个 C++ 的例子吗?

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

谢谢

【问题讨论】:

    标签: c++ oop uml


    【解决方案1】:

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

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

    #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    |
    |-----------|                            |-----------|
    |           |                            |           |
    +-----------+                            +-----------+
    

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 2011-04-04
      • 2012-01-08
      • 2013-01-06
      • 2012-01-05
      • 2020-05-24
      • 2013-04-10
      • 2011-09-27
      • 1970-01-01
      相关资源
      最近更新 更多