04 2017 档案
摘要:我们以顺序表为例来说明,普通顺序表的定义如下: 模板类也是模板, 必须以 关键字templ ate开头, 后接模板形参表。 模板类一般格式如下:template<class 形参名 1, class 形参名 2, . . . class 形参名 n>class 类名{ . . . } ; 【 模板类
阅读全文
摘要:1、引入 如何编写一个通用加法函数?第一个方法是使用函数重载, 针对每个所需相同行为的不同类型重新实现这个函数。C++的这种编程机制给编程者极大的方便,不需要为功能相似、参数不同的函数选用不同的函数名,也增强了程序的可读性。简单示例: 【 缺点】1、 只要有新类型出现, 就要重新添加对应函数。2、
阅读全文
摘要:1、什么是栈帧? 栈帧也叫过程活动记录,是编译器用来实现函数调用过程的一种数据结构。C语言中,每个栈帧对应着一个未运行完的函数。从逻辑上讲,栈帧就是一个函数执行的环境:函数调用框架、函数参数、函数的局部变量、函数执行完后返回到哪里等等。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的
阅读全文
摘要:main函数和启动例程 当内核使用一个exec函数执行C程序时,在调用main函数之前先调用一个特殊的启动例程,可执行程序将此例程指定为程序的起始地址。启动例程从内核获取命令行参数和环境变量,然后为调用main函数做好准备。我们常用gcc main.c -o main命令编译一个程序,其实也可以分三
阅读全文
摘要:进程优先级 进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。 权限与优先级 权限(privilege)是指在多用户计算机系统的管理中,某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。权限是有或没有的问题,而优先级则是在已
阅读全文
摘要:纯虚函数 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数的存在是为了更方便使用多态特性。它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数表>)
阅读全文
摘要:什么是多态 从字面上理解就是多种形态的意思。而多态一词最初源自希腊语,其含义便是“多种形式”,意思是是具有多种形式或形态的情形,在C++语言中多态有着更广泛的含义。在C++ primer一书中把具有继承关系的多个类型称为多态类型,因为我们能使用这些类型的“多种形式”而无须在意它们的差异。百度百科上提
阅读全文
摘要:进程状态 进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。为了弄明正正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有多个状态(在Linux内核中,进程有时候也叫做任务)。下面的状态在 fs/proc/array.c 文件中定义: 运行状态(runni
阅读全文
摘要:在上一篇文章中详细介绍了task_struct结构体内的常见成员,然后我们就来看一下具体内容。每个进程都把它的信息放在各自的 task_struct 这个数据结构中,task_struct 主要包含了这些内容:标示符 : 描述本进程的唯一标示符,用来区别其他进程。状态 : 任务状态,退出代码,退出信
阅读全文
摘要:1、单继承与多继承 单继承是一般的单一继承,一个子类只 有一个直接父类时称这个继承关系为单继承。这种关系比较简单是一对一的关系: 多继承是指 一个子类有两个或以上直接父类时称这个继承关系为多继承。这种继承方式使一个子类可以继承多个父类的特性。多继承可以看作是单继承的扩展。派生类具有多个基类,派生类与
阅读全文
摘要:STL源码初步接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集
阅读全文
摘要:进程概念介绍 进程是操作系统对运行程序的一种抽象。 • 一个正在执行的程序; • 一个正在计算机上执行的程序实例; • 能分配给处理器并由处理器执行的实体; • 一个具有普以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。 内核观点:担当分配系统资源(CPU时间,内存)的实体。
阅读全文
摘要:1、作用域与重定义(同名隐藏) 一样的,先上代码 编译后,编译器会报错 错误表明:编译器并没有将c.a()看做C类继承自A类的a()函数,而是报错没有给a函数参数,即不构成函数重载,如果给c.a(10)一个参数,编译通过。输出:C 那么我们不给C类中定义同名函数呢 编译通过,运行输出:A 如果C类定
阅读全文
摘要:在继承关系里面, 在派生类中如果没有显示定义这六个成员函数, 编译系统则会默认合成这六个默认的成员函数。 1、构造与析构函数的调用关系 调用关系先看一段代码: 输出结果为: 代码中,我们利用派生类Derived,创建了一个对象d,根据输出结果看到,貌似创建对象d的过程是:先调用基类的构造函数,再调用
阅读全文
摘要:1、继承与派生 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一。简单的说,继承是指一个对象直接使用另一对象的属性和方法。继承呈现了 面向对象程序设 计的层次结构, 体现了 由简单到复杂的认知过程。C++中的继承关系就好比现实生活中的父子关系,继承一笔财产比白手起家要容易得多,原始
阅读全文
摘要:vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难,在何况还有"星级译王"呢, 但是我猜和我一样连英语四级都愁的大有人,可偏偏就有一帮好心人人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下不为例。而我又是好心人,所以就分享给大家
阅读全文
摘要:顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。这样的存储方式使得线性表逻辑上相邻的元素,其在物理存储单元中也是相邻的。只要知道了第一个元素的存储地址,就可以知道线性表中任何一个元素的存储地址。本文利用C++语言,在Windows平台 Visu
阅读全文
摘要:输入输出操作1.>> 从输入流读取一个string。2.<< 把一个string写入输出流。另一个函数就是getline(),他从输入流读取一行内容,直到遇到分行符或到了文件尾。 C ++字符串支持常见的比较操作符(>,>=,<,<=,==,!=),甚至支持string与C-string的比较(如s
阅读全文
摘要:1.引用计数 我们知道在C++中动态开辟空间时是用字符new和delete的。其中使用new test[N]方式开辟空间时实际上是开辟了(N*sizeof(test)+4)字节的空间。如图示其中保存N的值主要用于析构函数中析构对象的次数delete[] p时先取N(*((int*)p-1))。我们参
阅读全文
摘要:1. 浅拷贝 : 也称位拷贝 , 编译器只是直接将指针的值拷贝过来, 结果多个对象共用 同 一块内存, 当一个对象将这块内 存释放掉之后, 另 一些对象不知道该块空间已经还给了系统, 以为还有效, 所以在对这段内存进行操作的时候, 发生了违规访问。 先上代码 int main() { String
阅读全文
摘要:基本认识: 计算机:接受用户的指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。广义上讲:我们周边有好多宽泛概念上的计算机,如加减乘除计算机,手机, GPS, ATM等等。计算机五大单元: 输出单元:包括键盘,鼠标,扫描仪,读写板等。中央处理器(CPU):含有算术逻辑,
阅读全文
摘要:shell是一种命令行解释器 对于一般用户,我们不能直接使用操作系统(kernel)。而是通过 kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。 为什么不能直接使用kernel? 从技术角度 , Shell的最简单定义 : 命 令 行 解 释 器(command Inter
阅读全文

浙公网安备 33010602011771号