- 博客(8)
- 收藏
- 关注
原创 虚继承
虚继承是为了消除多重继承带来的二义性。以菱形继承为例:class A{ public: int ma;}class B:public A{ public: B():A(){}; int mb;}class C:public A{ public: C():A(){} int mc;}class D:public B,publi...
2018-07-21 14:45:08 290
原创 虚函数
拥有 Virtual 关键字的函数称之为虚函数虚函数的作用是实现动态绑定的,也就是说程序在运行的时候动态的的选择合适的成员函数那么,有哪些函数可以成为虚函数?那些函数不可以成为虚函数?要成为虚函数必须满足两点,一就是这个函数依赖于对象调用,因为虚函数就是依赖于对象调用,因为虚函数是存在于虚函数表中,有一个虚函数指针指向这个虚表,所以要调用虚函数,必须通过虚函数指针,而虚函数指针是存在于...
2018-07-21 12:37:58 15241 2
原创 二叉树非递归遍历
非递归遍历主要利用栈这个数据结构后进先出的性质 非递归先序遍历根节点压栈,栈不空就进入循环,根节点出栈,打印数据域,,如果右孩子不空,压右孩子,如果左孩子不空,压左孩子,一定要先压右孩子,再压左孩子,一直循环,直到栈为空。void NPreOrder(BNode *ptr){ if(ptr == NULL) return; stack<BNode*&g...
2018-07-19 09:48:47 198
原创 进程间通讯——消息队列、信号量以及共享内存
消息队列,信号量,共享内存这三种我们称为XSI IPC,它们之间有很多相似之处。在了解这三个之前,我们先来了解标识符和键。 每个内核中的IPC结构(这里指消息队列,信号量和共享存储段)都用一个非负整数的标识符加以引用。例如,为了对一个消息队列发送或读消息时,只需要知道其队列的标识符。标识符是IPC对象的内部名。为使多个合作进程能够在同一IPC对象上会和,需要提供一个外部名,
2017-11-01 19:07:37 408
原创 进程间通信——管道
管道有两种:无名管道和有名管道。管道是半双工通讯。半双工通讯指数据可以沿两个方向传送,但同一时刻只能有一个方向的传送先来说说无名管道吧:无名管道是由调用pipe函数创建的;函数原型如下:#include //头文件int pipe(int filedes[2]);//函数原型 返回值:成功返回0,出错返回-1参数filedes返回两个
2017-10-31 20:06:15 330
原创 复数类
上次在写复数类的时候,遇到问题,现记录下来如下:你们在写复数类的时候是不是也遇到这个问题:#include using namespace std;template class CComplex{public: CComplex(T r=T(), T i=T()):mreal(r),mimage(i){}private: T mreal; T mimage;
2017-09-23 14:01:39 399
原创 单例模式
单例模式:就是一个类只产生一个对象。实现单例模式:要产生一个对象,就要把构造函数定义为私有的。 要定义一个该类的静态私有对象。 要对外提供一个函数,自行创建这个私有对象,当然,这个函数要定义为静态成员函数。单例模式的快加载:class SingleTon{public: sta
2017-09-20 20:45:56 239
原创 进程的基本状态
进程的三种基本状态:运行,就绪,阻塞运行状态:这是指进程已经获得CPU,其程序正在执行状态。就绪状态:这是指进程已经处于准备好运行的状态,即进程已经分配到所需资源,除了CPU,只要获得CPU便可立即执行。阻塞状态:指正在执行的进程由于某些事件(如I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。再满足请求是进程会进入就绪状态等待系统调用。阻塞状态有时也成为
2017-09-06 19:54:46 2456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人