【设计模式之 单例模式】
摘要:C++ 的单例模式与线程安全的单例模式(懒汉/饿汉) 1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法
阅读全文
posted @
2018-07-30 22:16
我得去图书馆了
阅读(234)
推荐(0) 编辑
【校招面试 之 网络】第4题 浏览器访问网站的一次完整过程
摘要:在浏览器中输入www.baidu.com后执行的全部过程: 应用层:客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,(DNS常见使用分布式的结构)通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通
阅读全文
posted @
2018-07-30 09:57
我得去图书馆了
阅读(852)
推荐(0) 编辑
【校招面试 之 网络】第3题 HTTP请求行、请求头、请求体详解
摘要:1、HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring
阅读全文
posted @
2018-07-30 09:45
我得去图书馆了
阅读(289)
推荐(0) 编辑
【校招面试 之 网络】第2题 TCP的可靠传输、流量控制、滑动窗口
摘要:1、可靠传输 (1)三次握手 TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接: (1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(AC
阅读全文
posted @
2018-07-29 22:15
我得去图书馆了
阅读(1179)
推荐(0) 编辑
【校招面试 之 C/C++】第33题 C++ 11新特性(四)之STL容器
摘要:C++ 11新增array、forward_list(单链表)、unordered_set、unordered_map集中容器。
阅读全文
posted @
2018-07-27 21:58
我得去图书馆了
阅读(261)
推荐(0) 编辑
【校招面试 之 C/C++】第32题 C++ 11新特性(三)之for关键字
摘要:1、for循环的一般写法: 而遍历容器类的For如下: 2、C++11中引入了这种方法也就是基于范围的For(Range-Based-For),用基于范围的For 改写上面两个例子: 可以看到改写后的使用方法简单了很多,代码的可读性提升了一个档次,但是需要注意的在上述对容器的遍历是只读的,也就是说遍
阅读全文
posted @
2018-07-27 21:54
我得去图书馆了
阅读(359)
推荐(0) 编辑
【校招面试 之 C/C++】第31题 C++ 11新特性(二)之nullptr关键字
摘要:1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起。对于C和C++程序员来说,一定不会对NULL感到陌生。但是C和C++中的NULL却不等价。NULL表示指针不指向任何对象,但是问题在于,NULL不是关键字,而只是一个宏定义(macro)。 1.1 NULL在C中的定义
阅读全文
posted @
2018-07-27 21:36
我得去图书馆了
阅读(772)
推荐(0) 编辑
【校招面试 之 C/C++】第30题 C++ 11新特性(一)之auto关键字
摘要:1、自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。 2、返回值占位 3、使用注意事项 ①我们可以使用valatile,pointer(*),reference(&),rvalue r
阅读全文
posted @
2018-07-27 20:58
我得去图书馆了
阅读(942)
推荐(0) 编辑
【校招面试 之 C/C++】第29题 C/C++ 关键字extern
摘要:1、extern "C" extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;
阅读全文
posted @
2018-07-26 14:50
我得去图书馆了
阅读(570)
推荐(0) 编辑
【校招面试 之 剑指offer】第18题 删除链表中的节点
摘要:题目一:在O(1)时间内删除链表节点。 给定单项链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。 思路:(1)如果要删除的节点不是链表的尾节点,则将被删除节点的内容复制到该节点,然后删除被复制的节点。 (2)如果删除的节点为链表节点的尾节点,则我们需要从头结点开始遍历到尾节点的前
阅读全文
posted @
2018-07-26 09:57
我得去图书馆了
阅读(277)
推荐(0) 编辑
【校招面试 之 剑指offer】第16题 数值的整数次方
摘要:方法1:直接求解,但是要注意特殊情况的处理:即当指数为负,且底数为0的情况。 方法2:可以归纳出下面的公式进行求解,使得循环次数大幅减小。也要注意特殊情况的处理:即当指数为负,且底数为0的情况。 an/2*an/2 n为偶数 an = a(n-1)/2*a(n-1)/2*a n为奇数
阅读全文
posted @
2018-07-25 10:24
我得去图书馆了
阅读(158)
推荐(0) 编辑
【校招面试 之 剑指offer】第11题 旋转数组中的最小数字
摘要:题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如: 数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为。 解题思路:就是变形的二分查找,但是要考虑特殊情况,例如{1,0,1,1,1},此
阅读全文
posted @
2018-07-24 22:03
我得去图书馆了
阅读(267)
推荐(0) 编辑
【Linux 进程】之关于父子进程之间的数据共享分析
摘要:之前我们通过fork()函数,得知了父子进程之间的存在着代码的拷贝,且父子进程都相互独立执行,那么父子进程是否共享同一段数据,即是否存在着数据共享。接下来我们就来分析分析父子进程是否存在着数据共享。 我们都知道,在linux下,内存存储的位置是全局变量,栈区,堆区,以及文件。字符常量区我们这里不作分
阅读全文
posted @
2018-07-24 18:51
我得去图书馆了
阅读(3947)
推荐(1) 编辑
【校招面试 之 剑指offer】第10-3题 矩阵覆盖问题
摘要:题目:我们可以使用2✖️1的小矩形横着或者竖着去覆盖更大的矩形。请问用8个2✖️1的小矩形无重叠地覆盖一个2✖️8的大矩形,共有多少种方法? 分析:当放第一块时(假定从左边开始)可以横着放,也可以竖着放,记总的情况为f(8)。如果是竖着放,则记下来还有f(7)种放法;若是横着放,则下一块必须横着放,
阅读全文
posted @
2018-07-24 10:47
我得去图书馆了
阅读(210)
推荐(0) 编辑
【校招面试 之 剑指offer】第10-2题 青蛙跳台阶问题
摘要:题目1:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级台阶共有多少种跳法? 题目2:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶...也可以一次跳n级台阶。求该青蛙跳上一个n级台阶共有多少种跳法?
阅读全文
posted @
2018-07-24 10:19
我得去图书馆了
阅读(263)
推荐(0) 编辑
【校招面试 之 剑指offer】第9-1题 用两个栈实现一个队列
摘要:#include #include using namespace std; template void pushQueue(stack &stack1, T t){ stack1.push(t); } template T popQueue(stack &stack1, stack &stack2){ // 先将stack1倒到stack2中 while(!stack1.empt...
阅读全文
posted @
2018-07-23 21:12
我得去图书馆了
阅读(150)
推荐(0) 编辑
【C基础】之联合体
摘要:1.联合体 联合体(union)与结构体(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在联合体中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。 应该说明的是, 这里所谓的共享不是指把多个成员
阅读全文
posted @
2018-07-23 19:56
我得去图书馆了
阅读(1940)
推荐(1) 编辑
【校招面试 之 C/C++】第28题 C++ 内存泄漏的检查
摘要:1、memwatch的使用 (1)首先去官网上下载源码: http://www.linkdata.se/sourcecode/memwatch/ 解压得到memwatch.c以及memwatch.h两个文件 (2)对于vs2010来说: 首先将两个文件放到项目的根目录下,然后导入到头文件和源文件中:
阅读全文
posted @
2018-07-23 08:52
我得去图书馆了
阅读(942)
推荐(0) 编辑
【校招面试 之 C/C++】第27题 C++ 智能指针(三)之 unique_ptr
摘要:在语句#3中,p2接管string对象的所有权后,p1的所有权将被剥夺。前面说过,这是好事,可防止p1和p2的析构函数试图刪同—个对象; 但如果程序随后试图使用p1,这将是件坏事,因为p1不再指向有效的数据。 下面来看使用unique_ptr的情况: 编译器认为语句#6非法,避免了p3不再指向有效数
阅读全文
posted @
2018-07-22 17:13
我得去图书馆了
阅读(782)
推荐(0) 编辑
【校招面试 之 C/C++】第26题 C++ 智能指针(二)之 share_ptr
摘要:1、综述 shared_ptr 是一个标准的共享所有权的智能指针, 允许多个指针指向同一个对象. 定义在 memory 文件中(非memory.h), 命名空间为 std. shared_ptr 是为了解决 auto_ptr 在对象所有权上的局限性(auto_ptr 是独占的), 在使用引用计数的机
阅读全文
posted @
2018-07-22 16:35
我得去图书馆了
阅读(1240)
推荐(0) 编辑
【校招面试 之 C/C++】第25题 C++ 智能指针(一)之 auto_ptr
摘要:1、智能指针背后的设计思想 我们先来看一个简单的例子: 当出现异常时(weird_thing()返回true),delete将不被执行,因此将导致内存泄露。 如何避免这种问题?有人会说,这还不简单,直接在throw exception();之前加上delete ps;不就行了。是的,你本应如此,问题
阅读全文
posted @
2018-07-22 10:31
我得去图书馆了
阅读(858)
推荐(0) 编辑
【校招面试 之 C/C++】第20题 C++ STL(二)之Vector
摘要:1、vector的动态增长 当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间。vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector的空间是线性连续分配的,不能
阅读全文
posted @
2018-07-21 18:21
我得去图书馆了
阅读(1258)
推荐(0) 编辑
【校招面试 之 C/C++】第19题 C++ STL(一)
摘要:典型的序列容器,C++标准严格要求次容器的实现内存必须是连续的,唯一可以和标准C兼容的stl容器,任意元素的读取、修改具有常数时间复杂度,在序列尾部进行插入、删除是常数时间复杂度,但在序列的头部插入、删除的时间复杂度是O(n),可以 在任何位置插入新元素,有随机访问功能,插入删除操作需要考虑。 本质
阅读全文
posted @
2018-07-21 17:54
我得去图书馆了
阅读(610)
推荐(0) 编辑
【校招面试 之 C/C++】第18题 C++ 中的隐式转换以及explicit关键字
摘要:1、什么是隐式转换: 众所周知,C++的基本类型中并非完全的对立,部分数据类型之间是可以进行隐式转换的。 所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。很多时候用户可能都不知道进行了哪些转换。 2、为什么要进行隐式类型转换: C++面向对象的多态特性,就是通过父类的类型实现对子类的
阅读全文
posted @
2018-07-21 16:52
我得去图书馆了
阅读(448)
推荐(0) 编辑
【校招面试 之 C/C++】第17题 C 中的malloc相关
摘要:1、malloc (1)原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。) 功能:分配长度为nu
阅读全文
posted @
2018-07-20 12:32
我得去图书馆了
阅读(426)
推荐(0) 编辑
【校招面试 之 C/C++】第16题 C++ new和delete的实现原理
摘要:1、new new操作针对数据类型的处理,分为两种情况: (1)简单数据类型(包括基本数据类型和不需要构造函数的类型) 代码实例: int* p = new int; 汇编码如下: int* p = new int; 00E54C44 push 4 00E54C46 call operator ne
阅读全文
posted @
2018-07-20 10:08
我得去图书馆了
阅读(4421)
推荐(4) 编辑
【校招面试 之 C/C++】第15题 C 回调函数
摘要:转自:https://segmentfault.com/a/1190000008293902 做略微改动 什么是回调函数 我们先来看看百度百科是如何定义回调函数的: 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们
阅读全文
posted @
2018-07-20 10:03
我得去图书馆了
阅读(656)
推荐(1) 编辑
【校招面试 之 网络】第1题 TCP和UDP
摘要:TCP UDP1、TCP与UDP基本区别 (1)基于连接与无连接 (2)TCP要求系统资源较多,UDP较少; (3)UDP程序结构较简单(头只有8个字节:源端口号、目标端口号、长度、差错) (4)TCP保证数据正确性,UDP可能丢包 (5)TCP保证数据顺序,UDP不保证 2、UDP应用场景: (1
阅读全文
posted @
2018-07-19 17:54
我得去图书馆了
阅读(339)
推荐(0) 编辑
【校招面试 之 C/C++】第13题 C++ 指针和引用的区别
摘要:1、指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如: int a=1;int *p=&a; int a=1;int &b=a; 上面定义了一个整形变量和一个指针变
阅读全文
posted @
2018-07-19 11:53
我得去图书馆了
阅读(1047)
推荐(0) 编辑
【校招面试 之 C/C++】第12题 C++ 重载、重写和重定义
摘要:1、成员函数重载特征: a.相同的范围(在同一个类中); b.函数名字相同; c.参数不同(参数个数不同或者参数类型不同,但是返回值不同不能使重载); d.virtual关键字可有可无。 2、重写(覆盖)是指派生类函数覆盖基类函数,特征是: a.不同的范围,分别位于基类和派生类中 b.函数的名字相同
阅读全文
posted @
2018-07-19 11:09
我得去图书馆了
阅读(445)
推荐(0) 编辑
【校招面试 之 C/C++】第11题 C++ 纯虚函数
摘要:1、纯虚函数 成员函数的形参后面写上=0,则成员函数为纯虚函数。 纯虚函数声明: virtual 函数类型 函数名 (参数表列) = 0; class Person { virtual void Display () = 0; // 纯虚函数 protected : string _name ; /
阅读全文
posted @
2018-07-19 10:19
我得去图书馆了
阅读(336)
推荐(0) 编辑
【校招面试 之 C/C++】第10题 C++不在构造函数和析构函数中调用虚函数
摘要:1、不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化。在构造函数完成之前,被构造的对象被认为“未完全生成”。当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数,那么此时派生类的构造函数并未执行,所调用的函数(派生类的虚函数)可能操作还没有被初始化的成员,将导致
阅读全文
posted @
2018-07-19 09:57
我得去图书馆了
阅读(265)
推荐(0) 编辑
【校招面试 之 C/C++】第8题 C++中的静态绑定与动态绑定
摘要:转自:https://blog.csdn.net/chgaowei/article/details/6427731 做了部分修改 为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采
阅读全文
posted @
2018-07-19 00:27
我得去图书馆了
阅读(399)
推荐(0) 编辑
【校招面试 之 C/C++】第7题 C++构造函数不能是虚函数的原因
摘要:1、虚拟函数调用只需要“部分的”信息,即只需要知道函数接口,而不需要对象的具体类型。但是构建一个对象,却必须知道具体的类型信息。如果你调用一个虚拟构造函数,编译器怎么知道你想构建是继承树上的哪种类型呢?所以这在逻辑上是一个悖论。 2、除了虚表,还有虚表指针vptr,类实例需要靠他指向虚表,构造的时候
阅读全文
posted @
2018-07-18 23:55
我得去图书馆了
阅读(540)
推荐(0) 编辑
【校招面试 之 C/C++】第6题 C++深拷贝与浅拷贝
摘要:1、两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的; 但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象,所
阅读全文
posted @
2018-07-18 23:34
我得去图书馆了
阅读(415)
推荐(0) 编辑
【校招面试 之 C/C++】第5题 C++各种构造函数的写法
摘要:构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。 1、最基本的构造函数 2、拷贝构造函数 为什么拷贝构造函数
阅读全文
posted @
2018-07-18 23:22
我得去图书馆了
阅读(410)
推荐(0) 编辑
【校招面试 之 C/C++】第4题 拷贝构造函数被调用的3个时机
摘要:1、被调用的3个时机: (1)直接初始化或拷贝初始化; (2)将一个对象作为一个实参传递,形参采用非指针或非引用的对象进行接收时(指针即指向了同一块空间,并未实现拷贝;而引用就是实参本身); (3)函数的返回值是以值传递的形式返回。 2、举例说明: 输出结果:
阅读全文
posted @
2018-07-18 18:25
我得去图书馆了
阅读(706)
推荐(0) 编辑
【校招面试 之 C/C++】第2题 函数模板、类模板、特化、偏特化
摘要:1、C++模板 说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板。我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样显然不利于程序的扩充和维护。C++模板就应运而生。C++的模板提供了对逻辑结构相同的数据对象通用行为
阅读全文
posted @
2018-07-18 16:24
我得去图书馆了
阅读(1305)
推荐(0) 编辑
【校招面试 之 C/C++】第1题 为什么优先使用构造函数的初始化列表
摘要:1.首先看一个例子: 情形1输出: 情形2输出: 第二种情况输出对应Test2的初始化列表,直接调用拷贝构造函数初始化test1,省去了调用默认构造函数的过程。所以一个好的原则是,能使用初始化列表的时候尽量使用初始化列表。提高了性能。 2. 除了性能问题之外,有些时场合初始化列表是不可或缺的,以下几
阅读全文
posted @
2018-07-18 12:07
我得去图书馆了
阅读(723)
推荐(0) 编辑
从RTTI谈C++的向下转型
摘要:转自:http://blog.chinaunix.net/uid-28541347-id-4251713.html 从RTTI谈C++的向下转型 1.什么是RTTI? RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。允
阅读全文
posted @
2018-07-18 10:43
我得去图书馆了
阅读(1064)
推荐(0) 编辑
C++ 四种类型转换
摘要:将类型名作为强制类型转换运算符的做法是C语言的老式做法,C++语言为保持兼容而予以保留。C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。强制类型转换是有一定风险的,有的转换
阅读全文
posted @
2018-07-18 10:41
我得去图书馆了
阅读(1499)
推荐(0) 编辑
C++ 模板的全特化与偏特化
摘要:模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 先看类模板: 那么下面3句依次调用类模板、全特化与偏特化
阅读全文
posted @
2018-07-17 16:02
我得去图书馆了
阅读(1341)
推荐(0) 编辑
【校招面试 之 C/C++】第3题 为什么要内存对齐?以及内存对齐的方式
摘要:1、为什么要进行内存对? 参考:https://blog.csdn.net/a369000753/article/details/51188915 所谓内存对齐,是为了让内存存取更有效率而采用的一种编译阶段优化内存存取的手段。 比如对于int x;(这里假设sizeof(int)==4),因为cpu
阅读全文
posted @
2018-07-16 19:03
我得去图书馆了
阅读(1348)
推荐(1) 编辑
Linux网络编程---htons函数的使用
摘要:htons是将整型变量从主机字节顺序转变成网络字节顺序, 就是整数在地址空间存储方式变为高位字节存放在内存的低地址处。
阅读全文
posted @
2018-07-14 19:51
我得去图书馆了
阅读(7149)
推荐(0) 编辑
C/C++堆、栈及静态数据区详解
摘要:转自:https://www.cnblogs.com/hanyonglu/archive/2011/04/12/2014212.html 做略微修改 C/C++堆、栈及静态数据区详解 本文介绍C/C++中堆,栈及静态数据区。 五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全
阅读全文
posted @
2018-07-08 20:39
我得去图书馆了
阅读(557)
推荐(0) 编辑
C++ define与const
摘要:C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下: 用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常量的名字联系起来,define所定义的宏变量在预处理的时候进行替换,在程序中使用到该常量的地方都要进
阅读全文
posted @
2018-07-08 20:15
我得去图书馆了
阅读(301)
推荐(0) 编辑
C/C++程序编译流程(预处理->编译->汇编->链接)
摘要:转自:https://www.cnblogs.com/Lynn-Zhang/p/5377024.html 有改动 C/C++程序编译流程(预处理->编译->汇编->链接) 程序的基本流程如图: 1. 预处理 预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件
阅读全文
posted @
2018-07-08 18:37
我得去图书馆了
阅读(1427)
推荐(1) 编辑
C++重载、重写(覆盖)、隐藏
摘要:类成员函数中重载/重写(覆盖)/重定义(隐藏)的区别? 答:分别简单讲述一下函数重载,函数覆盖,函数隐藏的概念与特征: 函数重载:重载函数通常用来命名一组功能相似的函数 1.函数要在相同的类域 2.函数的名字要相同 3.函数的参数列表或返回值不同 函数覆盖:覆盖是指派生类函数覆盖基类函数 1.函数是
阅读全文
posted @
2018-07-08 18:21
我得去图书馆了
阅读(217)
推荐(0) 编辑
C++中纯虚函数
摘要:1.纯虚函数 virtual ReturnType Function()= 0; 纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,
阅读全文
posted @
2018-07-08 00:15
我得去图书馆了
阅读(1766)
推荐(0) 编辑
【校招面试 之 C/C++】第9题 C++多态
摘要:C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数; 2
阅读全文
posted @
2018-07-07 23:58
我得去图书馆了
阅读(513)
推荐(0) 编辑
C++ 内存解析
摘要:一、内存基本构成可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。 栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建
阅读全文
posted @
2018-07-07 23:15
我得去图书馆了
阅读(2405)
推荐(0) 编辑
Linux 线程调度
摘要:1.线程sleep()后,会让出cpu的时间片,交由其他线程进行抢占cpu。 线程之间正常的切换是依靠时间片的。 当主线程没有结束,且其在所占有的时间片内,并没有结束自己的工作,此时,子线程将会抢占cpu时间片。 参考帖子以及下面的评论:https://blog.csdn.net/harry_lyc
阅读全文
posted @
2018-07-07 15:29
我得去图书馆了
阅读(973)
推荐(0) 编辑
linux创建线程之pthread_create
摘要:pthread_create函数 函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *rest
阅读全文
posted @
2018-07-07 10:57
我得去图书馆了
阅读(496)
推荐(0) 编辑
进程相关概念
摘要:一、进程的描述 1、进程的静态描述 一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。如何从处理机的活动角度,如何识别程序执行活动的进程?系统中描述进程存在和能够反映其变化的物理实体,即进程的静态描述 进程控制块(PCB)、有关程序段和该程序段对其进行操作的数据结构集。 a)进程控制块
阅读全文
posted @
2018-07-05 09:45
我得去图书馆了
阅读(348)
推荐(0) 编辑