
C++
DW_____
加油,做最好的自己!
展开
-
C与C++的区别_const_引用
引用_const1、 引用就是一个内存单元的别名 (底层以指针的方式来支持引用,在引用使用的地方,系统自带解引用过程)引用一定要初始化引用引用的变量一定要能取地址引用不可改变的只能访问引用变量所引用的内存块的内容 int &b = a; b引用a,b指向a的内存块,即她俩地址相同#include <iostream>using names...原创 2018-11-24 20:06:21 · 209 阅读 · 0 评论 -
【C++】继承和多态[2]
继承: 单继承 多继承 菱形继承 存在的问题:间接基类的数据会出现多份,会导致访问出错。解决方法:虚表指针 虚继承 虚基类构造优先级高 非虚基类布局优先于虚基类#include<iostream>c...原创 2019-01-21 15:27:17 · 110 阅读 · 0 评论 -
【c++】工厂模式
工厂模式的两个最重要功能:(1)定义创建对象的接口,封装了对象的创建(2)使得具体化类的工作延迟到子类中1.简单工厂模式#include<iostream>class Product{public: Product(std::string name):mname(name) {} virtual void operation() = 0; virtua...原创 2019-01-20 20:19:32 · 273 阅读 · 0 评论 -
【C++】内存池
C++中系统没有自动回收管理内存的方式,必须要用new和delete来申请和释放内存。但是如果频繁使用new和delete会有效率问题的存在和内存碎片的产生。 内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等的内存块留做备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存不够再继续申请新的内存。这样做的一个显著优点是,使得内存分配的效率得到提升。...原创 2019-01-13 11:13:45 · 531 阅读 · 0 评论 -
【C++】类和对象2
赋值运算符的重载函数(若系统默认给出的赋值运算符的重载函数为浅拷贝函数)实现过程:1.判断是否为自赋值 2.释放旧资源 3.申请新资源 4.赋值const:1.防止修改实参 2.接收隐式生成的临时对象#include <iostream>class Test{public: Test(int a, int b) { std::cout...原创 2018-12-05 22:45:28 · 108 阅读 · 0 评论 -
【C++】类和对象1四个默认的函数的小总结
面向对象oop的基本思想 C++三大特征:封装、继承、多态public:任意位置访问protected:本类、子类中访问private:本类中访问 struct和class的一些小区别:默认的继承访问权限:struct是public,class是private初始化的方式不同 this(thiscall)类中普通的成员方法中有默认的参数普通成...原创 2018-11-26 22:52:48 · 152 阅读 · 0 评论 -
编译 链接 运行原理
一、在80386之前是实模式,80386之后是保护模式所谓的32位、62位是指 ALU的宽度,即一次性能处理最大数据长度(比特为单位)在Windows操作系统下4G虚拟内存空间是,用户空间:内核空间是1:1在Linux操作系统下4G虚拟内存空间是,用户空间:内核空间是3:1Linux4G虚拟地址空间分配大致如下图 ...原创 2018-11-12 21:36:36 · 385 阅读 · 0 评论 -
函数堆栈调用
函数堆栈调用对以下代码进行分析:#include <stdio.h>int sum(int a,int b){ int tmp = 0; tmp = a + b; return tmp;}int main(){ int a = 10; int b = 20; sum(a,b); return 0;}我...原创 2018-11-20 11:04:41 · 194 阅读 · 0 评论 -
【C++】继承和多态[1]
C++的三大特性:继承、多态、封装这篇博客讨论下继承和多态继承继承的本质是代码复用。继承了什么: 除构造函数和析构函数以外的所有成员继承了作用域继承写法:类标识 类名:继承方式 基类名继承和派生的关系: 派生类的内存布局:派生类对象的构造和析构:构造:1、系统调用基类的构造2、系统调用派生类的构造析构:1、系统调用派生类...原创 2019-01-16 22:48:31 · 285 阅读 · 0 评论