第三周 C++面向对象高级编程(上)Boolan

类和类之间有什么关系

Object Oriented Programming, Object Oriented Design / OOP,OOD

第三周 C++面向对象高级编程(上)Boolan_第1张图片
OOP,OOD
  • Inheritance
  • Composition
  • Delegation

Composition(复合),表示 has-a

第三周 C++面向对象高级编程(上)Boolan_第2张图片
Composition(复合),表示 has-a

变化一下以便于理解


第三周 C++面向对象高级编程(上)Boolan_第3张图片
Composition(复合),表示 has-a

我里面有另一种这个东西
黑色菱形表示复合
这是一个特例
queue里面全部用的是 c 的功能。
deque 里面可能有100个功能,queue 只用了6了
Adapter 适配
已有的deque功能完全满足,只不过变了个名字
并不是所有的 Composition 都长这个样子
从内存的角度讲解 Composition


第三周 C++面向对象高级编程(上)Boolan_第4张图片
Composition(复合),表示 has-a

Composition关系下的构造和析构

第三周 C++面向对象高级编程(上)Boolan_第5张图片
Composition关系下的构造和析构

构造时由内向外
析构时由外向内

Delegation(委托). Composition by reference.

第三周 C++面向对象高级编程(上)Boolan_第6张图片
Delegation(委托). Composition by reference.

指针指向另一个类
空心表示指针,引用只是一个指针,暂时还没有

pimpl
pointer to implementary 指针到实现
编译防火墙

Inheritance(继承),表示 is-a

第三周 C++面向对象高级编程(上)Boolan_第7张图片
Inheritance(继承),表示 is-a

三者都是面向对象的一部分
空心三角新表示继承

Inheritance(继承)关系下的构造和析构

第三周 C++面向对象高级编程(上)Boolan_第8张图片
Inheritance(继承)关系下的构造和析构

Inheritance with virtual functions(虚函数)

第三周 C++面向对象高级编程(上)Boolan_第9张图片
Inheritance with virtual functions

成员函数分为三种
non-virtual 函数,虚函数:你不希望 derived class 重新定义(override,复写)
virtual 函数:你希望 derived class 重新定义(override,复写)
pure virtual 函数:你希望 derived class 一定要重新定义它,你对它没有默认定义。

Inheritance with virtual

第三周 C++面向对象高级编程(上)Boolan_第10张图片
打开不同的文件,需要调用不同的函数

第三周 C++面向对象高级编程(上)Boolan_第11张图片
Inheritance with virtual

23个重要模式之一
Template Method
MFC


第三周 C++面向对象高级编程(上)Boolan_第12张图片
Paste_Image.png

Inheritance + Composition 关系下的构造与析构

第三周 C++面向对象高级编程(上)Boolan_第13张图片
Inheritance + Composition 关系下的构造与析构
第三周 C++面向对象高级编程(上)Boolan_第14张图片
Inheritance + Composition 关系下的构造与析构

Delegation + Inheritance

第三周 C++面向对象高级编程(上)Boolan_第15张图片
Delegation + Inheritance

第三周 C++面向对象高级编程(上)Boolan_第16张图片
对同一组数据有多重查看方式

第三周 C++面向对象高级编程(上)Boolan_第17张图片
Delegation + Inheritance

第三周 C++面向对象高级编程(上)Boolan_第18张图片
Composite
第三周 C++面向对象高级编程(上)Boolan_第19张图片
Prototype

Prototype
下划线代表静态
-Private
# Protected
+Public

第三周 C++面向对象高级编程(上)Boolan_第20张图片
Prototype
第三周 C++面向对象高级编程(上)Boolan_第21张图片
Prototype

你可能感兴趣的:(第三周 C++面向对象高级编程(上)Boolan)