设计模式完成

This commit is contained in:
Estom
2021-08-21 16:47:19 +08:00
parent 3ff5b1cdca
commit c5ec920208
23 changed files with 122 additions and 20 deletions

View File

@@ -13,7 +13,7 @@
默认构造(无参)   T()
拷贝构造       T(const T& )
移动构造       T()
移动构造       T(T&&)
拷贝赋值       T& operator=(T& )
移动赋值       T& operator=(T&& )

View File

@@ -2,7 +2,7 @@
## 1 继承
### 定义基类
```
```c++
class Quote{
public:
Quote() = default;
@@ -21,7 +21,7 @@ protected:
};
```
### 定义派生类
```
```c++
class Bulk_quote:public Quote{
public:
Bulk_quote()=default;
@@ -93,7 +93,7 @@ protected:
### 编译时名字查找
* 引用或指针的静态类型决定了该对象有哪些成员是可见的。一个基类的引用和指针只能访问基类的成员。即动态对象是其派生类。
* 引用或指针的静态类型决定了该对象有哪些成员是可见的。一个基类的引用和指针只能访问基类的成员。即使动态对象是其派生类。
### 名字冲突与继承
* 派生了重用定义在直接基类或间接基类中的名字,会屏蔽定义在外层作用域基类中的名字

View File

@@ -66,7 +66,7 @@ int main(){
```
### 实现条件
运行时多态的条件:
* 必须是j继承关系
* 必须是继承关系
* 基类中必须包含虚函数,并且派生类中一定要对基类中的虚函数进行重写。
* 通过基类对象的指针或者引用调用虚函数。
@@ -96,7 +96,7 @@ public:
### 虚函数的原理
* 除了构造函数的非静态函数都可以是虚函数。
* 关键字virtual能出现在类内部的声明语句之前。不能出现在类外部的函数定义。
* 关键字virtual能出现在类内部的声明语句之前。不能出现在类外部的函数定义。
* 如果把一个函数声明成虚函数,则该函数在派生类中也是隐式的虚函数。(即派生类的派生类,也需要重写次函数)
* 派生类可以不用重写虚函数。
* 派生类可以在它重写的虚函数前使用**virtual关键字**

View File

@@ -21,8 +21,8 @@ int main()
int s1[]={1,2,3,4,5,6,7,8};
int s2[3]={4,5,6};
int* s3 = new int(999);
test1(s3);
test2(s3);
test3(s3);
test1(s1);
test2(s1);
test3(s1);
return 0;
}