摘要: 一、多态的主要特点 1、继承体系下。继承:是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性 和行为,并能扩展新的能力,已有类被称为父类/基类,新增加的类被称作子类/派生类。 2、子类对父类的虚函数进行重写。 3、虚表。 在面向对象语言中,接口的多种不同现方式即阅读全文
posted @ 2017-05-12 08:59 滴巴戈 阅读(105) 评论(0) 编辑
摘要: 1. boost::shared_ptr 前面我已经讲解了两个比较简单的智能指针,它们都有各自的优缺点。由于 boost::scoped_ptr 独享所有权,当我们真真需要复制智能指针时,需求便满足不了了,如此我们再引入一个智能指针,专门用于处理复制,参数传递的情况,这便是如下的boost::sha阅读全文
posted @ 2017-05-11 21:02 滴巴戈 阅读(177) 评论(0) 编辑
摘要: 1. 引入 C++语言中的动态内存分配没有自动回收机制,动态开辟的空间需要用户自己来维护,在出函数作用域或者程序正常退出前必须释放掉。 即程序员每次 new 出来的内存都要手动 delete,否则会造成内存泄露, 有时我们已经非常谨慎了 , 然防不胜防:流程太复杂,程序员忘记 delete;异常导致阅读全文
posted @ 2017-05-10 22:24 滴巴戈 阅读(119) 评论(0) 编辑
摘要: 只有注册用户登录后才能阅读该文。阅读全文
posted @ 2017-05-09 12:01 滴巴戈 阅读(56) 评论(0) 编辑
摘要: 前面介绍的模板有关知识大部分都是用顺序表来举例的,现在我们就专门用模板来实现顺序表,其中的很多操作都和之前没有多大区别,只是有几个比较重要的知识点需要做专门的详解。 问题一实质同下面的问题3,后面再做详细分析。 这里很有必要详解实现上面赋值运算符重载的现代写法的实现原理 :首先看上面代码(list1阅读全文
posted @ 2017-05-02 22:40 滴巴戈 阅读(129) 评论(0) 编辑
摘要: 我们以顺序表为例来说明,普通顺序表的定义如下: 模板类也是模板, 必须以 关键字templ ate开头, 后接模板形参表。 模板类一般格式如下:template<class 形参名 1, class 形参名 2, . . . class 形参名 n>class 类名{ . . . } ; 【 模板类阅读全文
posted @ 2017-04-30 10:22 滴巴戈 阅读(95) 评论(-1) 编辑
摘要: 1、引入 如何编写一个通用加法函数?第一个方法是使用函数重载, 针对每个所需相同行为的不同类型重新实现这个函数。C++的这种编程机制给编程者极大的方便,不需要为功能相似、参数不同的函数选用不同的函数名,也增强了程序的可读性。简单示例: 【 缺点】1、 只要有新类型出现, 就要重新添加对应函数。2、 阅读全文
posted @ 2017-04-29 19:09 滴巴戈 阅读(153) 评论(0) 编辑
摘要: 1、什么是栈帧? 栈帧也叫过程活动记录,是编译器用来实现函数调用过程的一种数据结构。C语言中,每个栈帧对应着一个未运行完的函数。从逻辑上讲,栈帧就是一个函数执行的环境:函数调用框架、函数参数、函数的局部变量、函数执行完后返回到哪里等等。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的阅读全文
posted @ 2017-04-27 20:23 滴巴戈 阅读(366) 评论(0) 编辑
摘要: main函数和启动例程 当内核使用一个exec函数执行C程序时,在调用main函数之前先调用一个特殊的启动例程,可执行程序将此例程指定为程序的起始地址。启动例程从内核获取命令行参数和环境变量,然后为调用main函数做好准备。我们常用gcc main.c -o main命令编译一个程序,其实也可以分三阅读全文
posted @ 2017-04-26 21:47 滴巴戈 阅读(186) 评论(0) 编辑
摘要: 进程优先级 进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。 权限与优先级 权限(privilege)是指在多用户计算机系统的管理中,某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。权限是有或没有的问题,而优先级则是在已阅读全文
posted @ 2017-04-25 21:57 滴巴戈 阅读(151) 评论(0) 编辑
摘要: 纯虚函数 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数的存在是为了更方便使用多态特性。它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数表>)阅读全文
posted @ 2017-04-19 17:29 滴巴戈 阅读(97) 评论(0) 编辑
摘要: 什么是多态 从字面上理解就是多种形态的意思。而多态一词最初源自希腊语,其含义便是“多种形式”,意思是是具有多种形式或形态的情形,在C++语言中多态有着更广泛的含义。在C++ primer一书中把具有继承关系的多个类型称为多态类型,因为我们能使用这些类型的“多种形式”而无须在意它们的差异。百度百科上提阅读全文
posted @ 2017-04-19 11:25 滴巴戈 阅读(283) 评论(0) 编辑
摘要: 在上一篇文章中详细介绍了task_struct结构体内的常见成员,然后我们就来看一下具体内容。每个进程都把它的信息放在 task_struct 这个数据结构中,task_struct 包含了这些内容:标示符 : 描述本进程的唯一标示符,用来区别其他进程。状态 : 任务状态,退出代码,退出信号等。优先阅读全文
posted @ 2017-04-17 21:42 滴巴戈 阅读(153) 评论(0) 编辑
摘要: 单继承是一般的单一继承,一个子类只 有一个直接父类时称这个继承关系为单继承。这种关系比较简单是一对一的关系: 多继承是指 一个子类有两个或以上直接父类时称这个继承关系为多继承。这种继承方式使一个子类可以继承多个父类的特性。多继承可以看作是单继承的扩展。派生类具有多个基类,派生类与每个基类之间的关系仍阅读全文
posted @ 2017-04-16 21:52 滴巴戈 阅读(140) 评论(0) 编辑
摘要: STL源码初步接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集阅读全文
posted @ 2017-04-16 13:53 滴巴戈 阅读(181) 评论(0) 编辑
摘要: 进程概念介绍 进程是操作系统对运行程序的一种抽象。 • 一个正在执行的程序; • 一个正在计算机上执行的程序实例; • 能分配给处理器并由处理器执行的实体; • 一个具有普以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。 内核观点:担当分配系统资源(CPU时间,内存)的实体。阅读全文
posted @ 2017-04-13 22:07 滴巴戈 阅读(351) 评论(0) 编辑
摘要: 作用域与重定义(同名隐藏) 一样的,先上代码 编译后,编译器会报错错误表明:编译器并没有将c.a()看做C类继承自A类的a()函数,而是报错没有给a函数参数,即不构成函数重载,如果给c.a(10)一个参数,编译通过。输出:C 那么我们不给C类中定义同名函数呢 编译通过,运行输出:A 以上两个例子,完阅读全文
posted @ 2017-04-11 12:46 滴巴戈 阅读(88) 评论(0) 编辑
摘要: 在继承关系里面, 在派生类中如果没有显示定义这六个成员 函数, 编译系统则会默认合成这六个默认的成员函数。 构造函数。 调用关系先看一段代码: 输出结果为: 代码中,我们利用派生类Derived,创建了一个对象d,根据输出结果看到,貌似创建对象d的过程是:先调用基类的构造函数,再调用子类的构造函数;阅读全文
posted @ 2017-04-09 21:58 滴巴戈 阅读(156) 评论(0) 编辑
摘要: 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。简单的说,继承是指一个对象直接使用另一对象的属性和方法。继承呈现了 面向对象程序设 计的层次结构, 体现了 由简单到复杂的认知过程。C++中的继承关系就好比现实生活中的父子关系,继承一笔财产比白手起家要容易得多,原始类称为基类,继承阅读全文
posted @ 2017-04-09 12:17 滴巴戈 阅读(188) 评论(0) 编辑
摘要: vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难,在何况还有"星级译王"呢, 但是我猜和我一样连英语四级都愁的大有人,可偏偏就有一帮好心人人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下不为例。而我又是好心人,所以就分享给大家阅读全文
posted @ 2017-04-08 19:29 滴巴戈 阅读(86) 评论(0) 编辑
摘要: 1.什么是单例模式? 单例模式也称为单件模式、单子模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类,即设计的一个类成为单例。通过单例模式可以保证系统中一个这个类只有一个实例。即一个类只有一个对象实例。(设计模式(Design Pattern)是一套被反复使用、多数人知晓的阅读全文
posted @ 2017-07-24 13:04 滴巴戈 阅读(76) 评论(0) 编辑
摘要: 1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数阅读全文
posted @ 2017-07-23 10:24 滴巴戈 阅读(100) 评论(0) 编辑
摘要: 1.TCP常见的定时器 在TCP协议中有的时候需要定期或者按照某个算法对某个事件进行触发,那么这个时候,TCP协议是使用定时器进行实现的。在TCP中,会有七种定时器: 建立连接定时器(connection-establishment timer) 重传定时器(retransmission timer阅读全文
posted @ 2017-07-19 20:16 滴巴戈 阅读(111) 评论(0) 编辑
摘要: 1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性。 即它所修饰的变量不能被修改。 2.修饰局部变量 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法: 在C阅读全文
posted @ 2017-07-18 12:22 滴巴戈 阅读(218) 评论(0) 编辑
摘要: 一、常用普通调试命令 1.简单介绍GDB 介绍: gdb是Linux环境下的代码调试⼯具。使⽤:需要在源代码⽣成的时候加上 -g 选项。开始使⽤: gdb binFile退出: ctrl + d 或 quit 2.调试过程 (1)list命令 list linenum 显⽰binFile第linen阅读全文
posted @ 2017-06-27 19:26 滴巴戈 阅读(26) 评论(0) 编辑
摘要: 一、协议端口号的提出 运输层提供了进程间通信的能力(即端-端通信)。但是不同的操作系统可能无法识别其他机器上的进程。为了用统一的方法对 TCP/IP体系的应用进程进行标志,使运行不同操作系统的计算机的应用进程能够互相通信,提出在运输层使用协议端口号(protocolport number)的方法,或阅读全文
posted @ 2017-06-21 16:07 滴巴戈 阅读(23) 评论(0) 编辑
摘要: 一、相关概念 路由:(名词)数据包从源地址到目的地址所需要经过的路径,由一系列节点组成。路由(动词)某个路由节点为数据报选择投递方向的选路过程。 路由节点:一个具有路由功能的主机或者路由器,维护一张路由表,通过查询路由表来决定向那个节点发送数据包。 路由表:由很多路由条目组成,每个条目都指明去往某个阅读全文
posted @ 2017-06-20 19:11 滴巴戈 阅读(24) 评论(0) 编辑
摘要: 一、NAT技术介绍 1.概念 NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet阅读全文
posted @ 2017-06-20 15:39 滴巴戈 阅读(25) 评论(0) 编辑
摘要: 一、什么是CRC校验 CRC校验(即循环冗余校验)是数据通讯中最常采用检错纠错的一种校验方式,它广泛应用于数据链路层的数据传输中,以保证数据传输可靠性的一种差错检测措施。其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附阅读全文
posted @ 2017-06-20 12:35 滴巴戈 阅读(113) 评论(0) 编辑
摘要: 一、二叉搜索树的定义及性质 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 1. 每个节点都有一个作为搜索依据的关键码( key) , 所有节点的阅读全文
posted @ 2017-06-18 21:29 滴巴戈 阅读(230) 评论(0) 编辑