【发布时间】:2014-04-28 15:56:45
【问题描述】:
在理解与类的“实现”关系方面需要帮助。谁能给我一个 C++ 的例子吗?
浏览了一下才知道,实现接口的类就是实现的一个例子。 我没有得到更好的图片。如何使用 UML 表示相同的内容?
谢谢
【问题讨论】:
在理解与类的“实现”关系方面需要帮助。谁能给我一个 C++ 的例子吗?
浏览了一下才知道,实现接口的类就是实现的一个例子。 我没有得到更好的图片。如何使用 UML 表示相同的内容?
谢谢
【问题讨论】:
实现指定两种或多种类型之间的契约。其中一种类型(此处为 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 |
|-----------| |-----------|
| | | |
+-----------+ +-----------+
【讨论】: