需要帮助理解"实现"与班级的关系。任何人都可以给我一个C ++示例吗?
我浏览了,我知道,实现接口的类是实现的一个例子。 我没有得到更好的画面。如何使用UML表示相同的内容?
由于
答案 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 |
|-----------| |-----------|
| | | |
+-----------+ +-----------+