多态 polymorphism

多态 polymorphism

  • 一个接口,多种方法
  • 使用虚函数实现

基类成员函数添加了virtual关键字,该函数在执行时绑定。否则在编译时绑定。所以

基类希望其派生类进行覆盖的函数,定义为虚函数

智能指针

#include <memory>

三种智能指针

shared_ptr

有引用计数,当最后一个shared_ptr被销毁,其指向的对象将被析构。

例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <memory>
#include <iterator>

using namespace std;

class Foo{
    public:
    Foo() {p = new int[10];cout << "new@" << p <<endl;}
    ~Foo() {cout << "release@" << p << endl;delete [] p;p=nullptr;}
    int *p;
};

void smartptr()
{
    shared_ptr<Foo> sp1 = make_shared<Foo>();
    auto sp2 = make_shared<Foo>();
}
void ptr()
{
    auto p = new Foo;
}
int main(int argc,char* argv[])
{
    smartptr();
    ptr();
    return 0;
}

其输出结果为

docker1

初探docker

我的centos挂掉了,折腾了一两天没有成效,暂时不做他想,可能需要重装了吧。之前在win10上用VMware,老破电脑太卡,机缘巧合之下,我了解到docker是轻量级的虚拟机,来试一下。

docker2

搭建开发环境

首先还是从centos入手吧

1
2
3
C:\Users\Administrator>docker search centos
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   5221                [OK]

选择一个官方的版本,pull下来

1
docker run -it centos

docker3

docker容器操作 让我们再梳理一遍这样的事实:镜像image运行产生容器container,镜像可以保存为镜像 查看容器 1 2 3 4 C:\WINDOWS\system32>docker ps -a CONTAINER ID IMAGE