C/C++
文章平均质量分 68
打怪的蚂蚁
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
一、预备知识—程序的内存分配 由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(static): 全局变量和静态变量的转载 2009-09-10 15:41:00 · 439 阅读 · 0 评论 -
同步,异步,阻塞,非阻塞
在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。下面是我对这些术语的理解。同步:函数没有执行完不返回,线程被挂起 异步:函数立即返回,通过事件或是信号通知调用者阻塞:没有收完数据函数不返回,线程也被挂起非阻塞:函数立即返回,通过select通知调用者同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数原创 2009-09-15 14:20:00 · 719 阅读 · 0 评论 -
线程与进程
多线程共存于应用程序中是现代操作系统中的基本特征和重要标志。在UNIX操作系统中,每个应用程序的执行都在操作系统内核中登记一个进程标志,操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配,但进程和线程有什么区别呢? 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:线程的划分尺度小于进程,使得多线原创 2009-09-15 09:31:00 · 441 阅读 · 0 评论 -
C++之继承
从面向对象的程序设计的观点来看,继承表达的是对象类之间的相互关系。这种关系使得某类对象可以继承另外一类对象的特征和能力。如果一类对象继承了另一类对象的特征和能力,这个类就叫做所继承类的派生类。继承是一个进程,通过继承,一个对象可以获得另一个对象的属性(包括函数),并可向其中加入属于自己的一些特征。1.继承的基本概念C++中定义派生类的一般格式是:class 派生类名:继承方式(pub原创 2009-09-26 09:52:00 · 551 阅读 · 0 评论 -
C++之静态成员和友元
一.静态成员 静态类成员包括静态数据成员和静态函数成员两部分。 1). 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则,但是静态成员变量均作为公有成员使用。同时,静态数据成员还具有以下特点: ◎静态数据成员实际原创 2009-09-26 13:49:00 · 1471 阅读 · 0 评论 -
C++之虚函数和多态
1.虚函数 简单的说,虚函数就是在函数原型前加上virtual关键字。函数一旦被声明为虚函数,即使类在改写它的时候没有将其声明为虚函数,它从该点的继承层次结构中仍然是虚函数。如果基类中一个函数被声明为虚函数,在若干子类中有着不同的实现,那么我们在创建若干子类的不同对象时,可以用基类的指针或者引用来指明子类对象并且调用相应子类的函数。虚函数的定义方式如下:virtual 函数原创 2009-09-26 15:05:00 · 692 阅读 · 0 评论 -
C++基础入门
类 类是数据和函数的封装体,类也是一种数据类型。在类中数据称为数据成员,函数称为成员函数。 类的定义一般形式: class {private: protected: public: }; 数据成员同结构struct中的数据是一致的,成员函数是对类的私有数据成员操作的惟一途径。 类的成员函数声明的结构如下: ();//最后的分号不可以省略 成员函数原创 2009-09-25 10:08:00 · 693 阅读 · 0 评论 -
C++之模板和异常处理
1.模板模板也叫作参数化的数据类型,模板有俩种类型:函数模板和类模板。◎函数模板函数模板的声明语法为:template 模板函数类型 模板函数名(参数表)模板参数表由若干个“class模板参数”组成。在一个程序中所调用的函数模板可能使用不同的参数列表,这就使得程序能够用不同类型的参数调用相同的函数。函数模板与模板函数的区别:函数模板和类模板如同具有各种形原创 2009-09-26 22:13:00 · 1437 阅读 · 0 评论 -
浅谈C中的malloc和free函数
一、malloc()和free()的基本概念以及基本用法1、函数原型及说明void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 关于分配失败的原因,应该有多种,比如说空间不足就是一种。 void free(void *FirstByte): 该函数是将之前用malloc分配的原创 2009-12-20 14:29:00 · 932 阅读 · 0 评论