自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 孤儿进程和僵尸进程

一、定义:什么是孤儿进程和僵尸进程   僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。   孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。示例:    僵尸进程:一个子进程在其父进程还没有调用wait()或w

2008-05-31 14:09:00 5577

转载 友元函数和友元类

友元函数和友元类         采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义 一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称 为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都

2008-05-29 21:56:00 952

原创 Linux下的多线程编程

一篇介绍Linux下的多线程编程的文章1 引言  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进

2008-05-27 15:34:00 761

原创 Linux 线程实现机制分析

Linux 线程实现机制分析-.基础知识2006-09-08 自 从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性、效率。本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的。线程和进程

2008-05-27 15:30:00 657

原创 C++类继承关系问题

     C++类继承关系问题    在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,代表了接口继承含义,而他们分别具体代表了什么含义呢?1. public   从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,子类   可以代替父类完成父类接口所声明的行为,也就是必须符合“Li

2008-05-16 15:15:00 1000

原创 C++虚函数表解析(转)

C++虚函数表解析(转) C+ +中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种 技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术, 虚函数技术,要么是试图做到在编译时决议,要么试图做到

2008-05-14 16:22:00 539

原创 const成员函数

第五节 const成员函数   一些成员函数改变对象,一些成员函数不改变对象。 例如: int Point::GetY() {   return yVal; }    这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: void Point:: SetPt (int x, int y) {   xVal=x;   yVal=y; }   

2008-05-14 15:08:00 594

原创  Pointers to Class Members:指向类成员的指针

 Pointers to Class Members Are Not Pointers   Pointers to Class Members:指向类成员的指针   注:本条中只涉及到非静态的数据成员   --------------------------------------------------------   1、类成员的指针之声明:   class C {    public:   

2008-05-13 23:44:00 870

转载 类成员初始化总结

类成员初始化总结    

2008-05-12 23:12:00 2174

转载 图文例解C++类的多重继承与虚拟继承

        在过去的学习中,我们始终接触的单个类的继承,但是在现实生活中,一些新事物往往会拥有两个或者两个以上事物的属性,为了解决这个问题,C++引入了多重继承的概念,C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承。 举个例子,交通工具类可以派生出汽车和船连个子类,但拥有汽车和船共同特性水陆两用汽车就必须继承来自汽车类与船类的共同属性。   由此我们不难想出如下的图例与代

2008-05-12 11:49:00 609

转载 c++对象大小

C++对象的大小不同的编译器的实现是不一样的,以下仅讨论.net2003,其他编译的可能出现的结果以下也做了分析和猜测。在反推不同编译器实现的C++对象的大小时。对齐是一个很重要也容易被遗忘的问题。//test.cpp#include using std::cout;using std::endl;class A{};//类A是一个空类,但是它的大小并不为0,编译期间编译器会插

2008-05-11 22:16:00 781

转载 设计已死?

对很多粗略接触到 Extreme Programming 的人来说,XP 似乎 宣告了软件设计的死刑。不只很多的设计被嘲笑为 "Big Up Front Design"[译注1],连很多技术像UML、富有弹性的程序架构 (framework),甚至连模式 (pattern) 都不受重视,或是近似忽略了。事实上,XP内含很多设计理念,但是它与现有的软件流程有着不同的运作方式。XP藉由多种实务技巧 (

2008-05-09 10:48:00 1013

转载 STL备忘录

1. string.empty() 不是用来清空字符串,而是判断string是否为空,清空使用string.clear();2. string.find等查找的结果要和string::npos比较,而不是和-1比较。(各个平台可能不同)3. 将string转为char * ,用char * t = (char *)s.c_str() ,而不是 char *t =s.begin() 或者 c

2008-05-06 11:49:00 545

转载 千万要小心STL的iterator失效

iterator中文经常被译为“泛型指针”,在实际的使用中却需要比指针更加小心翼翼。如果没有注意到iterator失效,那么产生的错误可能比普通指针更隐蔽,当然也可能会引起一般的程序异常。iterator失效主要有两种情况: 1、iterator变量已经变成了“悬空指针”,对它进行*,++,--都会引起程序内存操作异常; 2、iterator所指向的变量已经不是你所以为的那个变量了。 所以在使用i

2008-05-06 11:48:00 88

转载 从实例中学习设计模式

前言 设计模式一度被捧为程序员的圣经。但有不少人对设计模式只知其形不知其实,认为设计模式是一种很神秘很强大的咒语,似乎只要对着一堆乱糟糟的代码说一声“设计模式,急急如律令!”那代码就会突然变得很好很强大,一切毛病都消失无踪。 其实设计模式并不是这样的。设计模式是一些编程惯用法的总结和提炼,这些惯用法在各种优秀代码中被普遍的使用,无论你学过还是没学过设计模式,很多思想和做法你都在有意无意的

2008-05-06 11:44:00 2052

转载 c++ vector删除元素

   现在用stl的人越来越多, stl确实是套很漂亮的算法和数据结构库. 但是初用stl的人往往会遇上很多问题.从一个容器中删除元素,是很常用的操作,但是也是初学者常会犯错误的地方,删除map和list中元素可能会犯迭代器失效的错误. vector是stl里很常用的一个容器, 和map,list等容器相比, 从vector中删符合某些条件的元素有更多的麻烦.比如,我们要完成如下的任务.有下面的类

2008-05-04 22:27:00 20114 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除