自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 bash_profile profile和environment等文件的关系和作用域

bash_profile profile和environment等文件的关系和作用域(1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。(意味着临时修改该文件不会立即生效,需要用source执行后才可以)(2)/etc/bashrc:为每一个运行bash shell的用户执行...

2018-10-11 20:04:43 371

原创 Docker在x86架构的物理机上跑Qemu-arm 容器

基本原理:用qemu-user半虚拟化技术与Docker技术融合。 实验环境:Ubuntu16.04 (Ubuntu14.04亲测可用) docker version 1.13.0 首先,安装qemu-user安装包,并更新qemu-arm的状态:apt-get update && apt-get install -y --no-install-recommends q...

2018-04-20 10:54:05 5646

转载 Openstack官方给予的镜像配置指令(原文:Image service property keys)

原文地址:https://docs.openstack.org/python-glanceclient/latest/cli/property-keys.html The following keys, together with the components to which they are specific, can be used with the property option for...

2018-04-20 09:06:03 846 1

原创 Openstack配置常见错误

碰到哪些Bug可以留言到评论区,我会定期查看BUG并给予反馈 1. 配置keystone时:su -s /bin/sh -c "keystone-manage db_sync" keystone2017-11-05 18:04:23.307 7286 WARNING oslo_db.sqlalchemy.engines [-] SQL connection failed. 10 atte...

2018-04-20 08:52:02 2928 1

原创 云平台源代码的一些粗浅理解——NovaRPC调用原理和实例生成过程

相关基础在每个模块中的rpcapi.py都是与conf有关的,其中包括conf文件的配置信息和cmd命令,与之不同的是,每个模块中的api.py都是与其他模块通信有关的,某一模块若想调用另一模块的功能,可以直接调用其api源码中api.py rpcapi.py manager.py的区别: 在Openstack中,RPC调用是通过RabbitMQ进行的。任何一个RPC调用,都有Clien...

2018-04-20 00:08:44 651

原创 Openstack M版本BUG

M版本配置完后发现等待半天也打不开dashboard,然后报错:500: Internal Server Error。多半原因是这个官方BUG: 在 /etc/apache2/conf-available/openstack-dashboard.conf文件中添加一行:WSGIApplicationGroup %{GLOBAL} 修改后的效果如下:WSGIScriptAlias /hori...

2018-04-19 23:44:58 569

原创 Openstack Nova-docker的安装配置(Mitaka版本)

前提:必须是一个配置好的OpenStack环境。必须是M版本,之后的版本nova-docker不再使用,取而代之的是Magnum项目。下载nova-docker drivergit clone -b stable/mitaka https://github.com/openstack/nova-dockercd nova-dockersudo pip install -r re

2017-10-26 22:05:28 958 2

原创 Docker的安装

打开终端输入:curl -sSL https://get.daocloud.io/docker | sh(以下是输出的内容)apparmor is enabled in the kernel and apparmor utils were already installed+ sh -c apt-key adv --keyserver hkp://ha.pool.sks-k

2017-10-26 21:58:52 470

原创 Docker的常用命令(包含一些nova-docker中的使用命令)

首先声明:CONTAINER_ID 容器的IDIMAGE_ID docker镜像的IDHOST_PATH 主机的文件夹路径CONTAINER_PATH 容器中的文件夹路径REPOSITORY_NAME docker中各类镜像的命名例如:ubuntu:14.04IMAGE_NAME 导出到本地时用户自己定义的名字,注意它不是REPOSITORY_NAMEnov

2017-10-23 23:13:07 539

原创 容器的初级概念

什么是容器?一个镜像格式一系列标准的操作一个执行环境Docker需要的组件:一个原生的Linux容器格式,docker中称libcontainernamespace,用于隔离文件系统,进程和网络文件、进程、网络隔离技术资源隔离和分组,使用cgroups,将CPU内存等资源独立分配给每个docker容器写时复制:文件系统都是写时创建的,这意味着文件系统是分层的、快速的

2017-10-23 23:10:52 721

原创 C++虚函数原理及其使用限制

虚函数的原理默认情况下,子类的数据表中有一个虚函数表指针,其保存着虚函数表的地址。一般情况下,子类没有重写父类的成员函数,则子类的虚函数表指针指向的是父类的虚函数表。若子类中有重写父类的成员函数,则子类中的虚函数表指针会重新定向到自己的虚函数表的位置,因此执行的虚函数位置也是子类的虚函数位置。只需在把基类的成员函数设为virtual,其派生类的相应的函数也会自动变为虚函数。那么

2017-10-23 22:35:02 447

原创 C++多态、编译时多态和运行时多态、纯虚函数

1. 多态当发出一条命令的时候,不同的对象接受到同样的命令,所做出不同的动作,或者相同对象收到不同消息或不同对象收到相同消息时产生的动作。2. 静态多态(早绑定、编译时多态、重载)程序在编译之前就知道用哪个函数,即在一个类中有相同的函数名,也就是函数重载。3. 动态多态(晚绑定、运行期多态、覆盖 、重写) 使用虚函数,virtual +函数名,实现多态的功能,在不同的类

2017-10-19 09:51:30 3340

原创 C++虚继承(理解还不到位)

无论继承的层级有多少层,只要他们之间保持着直接或者间接的继承关系,子类都可以与直接父类或者间接父类成为IsA的关系,并且能通过特定的指针对直接子类或间接子类进行相应的操作虚继承当出现菱形继承时,一个子类可能在追溯父类时找到了同一个父类,这时参数会重复,需要虚继承来解决。举个例子(以下来自百度百科):#include #include class CA{int k; //如果基类

2017-10-04 22:50:57 554

原创 C++多重继承和多继承格式

多重继承多继承格式

2017-10-04 22:48:22 1253

原创 C++虚析构函数

续isA):在函数传参时,可以使用子类对父类进行初始化,但是注意,子类中的一些父类不包含的数据成员和成员函数会丢失虚析构函数注意只是为了解决利用派生类生成父类的实例,需要父类具有虚函数,否则将有内存泄漏!虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象。换句话说,普通的析构函数在析构IsA这种方式的对象时只能析构了父类对象而无法析构子类对象。如果某个类不包含虚

2017-10-04 22:42:10 266

原创 C++ 隐藏和IsA

隐藏:子类的某些函数与父类的某些函数重名,此时子类继承了父类的函数,此时可以通过特殊的手段访问父类该函数,这种特性被称为隐藏隐藏的方式:隐藏的特性存在后,如果子类的成员函数和父类的成员函数只有参数的不同,在逻辑上不能形成重载关系,只有隐藏的关系,必须使用::来访问父类IsA:父类可以被子类初始化,但是子类不可以被父类初始化(这就是IsA特性)即solider是person但是person不一定

2017-10-04 22:37:43 825 1

原创 C++继承和共有、私有、保护继承

继承“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(derived class)”或“子类(son class )”。举例:首先声明个人类,工人具有人类的某种特性,因此可以继承人类的某些特性注意:类与类之间必须遵循概念上的父子关系,否则将造成定

2017-10-04 22:29:08 880

原创 C++常成员函数和常对象、对象指针和对象引用

常成员函数注意:常成员函数不允许调用普通成员函数普通的数据成员,但是没有改数据的权限为什么常成员函数不允许赋值操作?其可以使用 m iX = 10; X" width="600" style="height:auto">从上述例子可以看出,锁定的是*this所指向的内容,因此,this指针所指的地址不可以改变(错例)互为重载:但是这种方法根本不可行,你都不知

2017-09-28 23:45:45 746

原创 C++ this指针

this指针:指向对象自身数据的指针len = len;} int getLen() { return len; } void setLen(int len) { this->len = len; } private: int len;" width="462" style="height:auto">this自然会指向对象内部的成员当声明了多个对象时,成员函数访问的都是调

2017-09-28 23:41:39 246

原创 C++对象指针、对象成员和对象成员指针

对象指针对象成员和对象成员指针对象成员,作为一个对象来说,他成为另外一个类的数据成员对象成员指针,对象的指针作为另外一个类的数据成员        对象成员指针也可以用初始化列表实现对象成员指针指向其某一对象注意!在类中使用了对象成员指针后,在析构函数中要删除指针!

2017-09-28 23:33:58 1944

原创 C++再谈拷贝构造函数。(深拷贝,浅拷贝)

类成员、对象成员相关涉及的逻辑(假设坐标类为父类,线段为子类):如果坐标类含有一个默认构造函数(即不带参数的构造函数),那么它在实例化线段对象的时候可以不使用初始化列表;如果坐标类要求必须有xy传入,那么从线段类必须有xy传入,并使用初始化列表,当然,如果定义的量不是常量,也可以用一般的参数传递方式。来自http://www.imooc.com/video/8137>拷

2017-09-28 23:24:25 256

原创 C++重定义

【注意】重定义的源头Coordinate.h文件:class Coordinate{public: Coordinate(int x,int y); ~Coordinate(); void setX(int x); int getX(); void setY(int y); int getY();public: int m_iX; int m_iY;};

2017-09-28 23:13:26 716 1

原创 C++对象数组

对象数组,其作用就是批量生成多个实例其实例化方式,以及访问方法以下图为例:               图1m_iY = 20; delete [Ip; p = NULL; return O;" width="600" style="height:auto">                                           图2对象数

2017-09-28 23:05:51 663

原创 C++构造函数种类,对象的生命历程

构造函数之默认构造函数(调用的构造函数不用传递参数)两种实例化方式都是默认构造函数构造函数之初始化列表红字部分即为初始化列表:一个引号,多个参数用逗号隔开,赋值用()初始化列表特性:其先于构造函数执行其只能用于构造函数其可以同时初始化多个数据成员【注意】初始化列表的功用:对于类中的静态常量,不能用构造函数来初始化,必须使用初始

2017-09-28 13:07:13 830

原创 C++String类型、内存分区、构造函数

String类型getline(cin,变量);这是用来获取 用户输入的函数面向对象的基本思想是:用谁,做什么来表达程序的逻辑在代码层面,就是将所有的数据操作转化为成员函数的调用数据的封装的好处可以有效的控制输入的数据的正确性类内定义与内联函数关系:类内定义是指把函数定义都放在类内两者的关系:类内定义相当于在函

2017-09-27 22:33:47 380

原创 C++内存申请、实例化的方式

C++内存管理,我们只能做申请和归还操作申请内存 newint *p = new int释放内存deletedelete p申请块内存用数组,int *arr = new int[10],释放内存用delete[]arr内存操作的注意事项:C语

2017-09-27 22:04:32 513

原创 C++内联函数

内联函数与普通函数区别相当于省去了2、4步骤。内联函数的关键字为inlineinline int max(){}内联函数一般适用于结构简单的函数(无回调),一般不要有for循环等语句,调用比较频繁的、较为简单的函数可以使用内敛注意:递归函数不能用内联的方式,即使写了编译器也不会用内联的方式

2017-09-27 21:57:05 415

原创 C++面向对象、const和指针混用、函数参数的默认值

C++三要素:封装、继承、多态const和指针类型const int a和int const a是等价的const int *p= int const *p锁定的是*p所指向的内容,但是p所指向的内容可以改变可以改变地址,不可以改变值int * const p锁定的是p所指向的内容,但是*p所指向的内容可以改变

2017-09-27 21:53:54 905

原创 C++常见误区、常用方法(长期更新)

array0 = array1;// 错误 不能直接把一个数组赋值给另一个数组如果我们希望把一个数组赋值给另外一个则必须自己写程序按顺序拷贝每个元素     for ( int index = 0; index             array0[ index ] = array1[ index ];或者使用拷贝构造函数静态与动态内存分配的两个主要区别是静态对象是

2017-09-27 21:51:25 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除