11 2012 档案

C++ 虚继承
摘要:转自:http://www.cppblog.com/chemz/archive/2007/06/12/26135.html虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然这两个概念的定义是非常的简单明确的,但是在C++语言中虚继承作为一个比较生僻的但是又是绝对必要的组成部份而存在着,并且其行为和模型均表现出和一般的继承体系之间的巨大的差异(包括访问性能上的差异),现在我们就来彻底的从语言、模型、性能和应用等多个方面对虚继承和虚基类进行研究。 首先还是先给出虚继承和虚基类的定义。 虚继承:在继承定义中包含了virtual关键字的继承关系; 虚基类:在虚继承体系 阅读全文

posted @ 2012-11-12 14:38 as_ 阅读(2531) 评论(0) 推荐(0) 编辑

Linux进程间通信之信号量(semaphore)、消息队列(Message Queue)和共享内存(Share Memory)
摘要:System V 进程通信方式:信号量(semaphore)、消息队列(Message Queue)和共享内存(Share Memory)信号量信号量(semaphore)实际是一个整数,它的值由多个进程进行测试(test)和设置(set)。就每个进程所关心的测试和设置操作而言,这两个操作是不可中断的,或称“原子”操作,即一旦开始直到两个操作全部完成。测试和设置操作的结果是:信号量的当前值和设置值相加,其和或者是正或者为负。根据测试和设置操作的结果,一个进程可能必须睡眠,直到有另一个进程改变信号量的值。信号量可用来实现所谓的“临界区”的互斥使用,临界区指同一时刻只能有一个进程执行其中代码的代码 阅读全文

posted @ 2012-11-04 15:15 as_ 阅读(14906) 评论(0) 推荐(0) 编辑

Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
摘要:整理自网络Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal)管道(pipe)管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;实现机制:管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循环利用。当管道中没有信息的话,从管道中读取的进程会等待,直到另一端的进程放入信息。当管道被放满信息的 阅读全文

posted @ 2012-11-03 13:26 as_ 阅读(44283) 评论(2) 推荐(4) 编辑

C++深拷贝与浅拷贝
摘要:转自:http://www.cnblogs.com/BlueTzar/articles/1223313.html对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include <iostream> using namespace std; class CExample { private: int a; public: CExample(int b) { a=b; } void Show... 阅读全文

posted @ 2012-11-02 14:53 as_ 阅读(3725) 评论(0) 推荐(0) 编辑

导航