c++知识集锦
致力于分享热门实用的c++技术,拨云见月,去芜存菁,供c++爱好者学习参考。
applebite
编码即修行。Be a Coding Artist,rather than a Coding Farmer.
展开
-
什么是c++中的多态
什么是c++中的多态引言 多态(Polymorphism)、封装(Encapsulation)和继承(Inheritance)是面向对象思想的“三大特征”,此处俗称“面向对象的三板斧”,而多态是三板斧中最厉害的杀招,是面向对象最精微的内功,可以说,不理解多态就不懂得什么是面向对象。定义 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 简单地概括为“一个接口,多种方法”。原创 2015-08-04 21:59:21 · 3103 阅读 · 0 评论 -
c++中的函数重载
c++中的函数重载什么是函数重载 重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,这组函数被称为重载函数。函数重载的作用 重载函数常用来实现功能类似而所处理的数据类型不同的问题,能减少函数名的数量,提高程序的可读性。原创 2015-08-02 22:34:20 · 3056 阅读 · 0 评论 -
比较malloc/free和new/delete
比较malloc/free和new/delete 涉及到内存分配时,经常用到malloc与free.malloc与free是C++/C的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用 malloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于 malloc/原创 2015-07-30 21:28:15 · 2342 阅读 · 0 评论 -
linux下动态库的编写和调用
linux下动态库的编写和调用创建动态库程序文件 add.cint add(int a,int b){ return a+b;}创建引用头文件 head.c#ifndef _HEAD_#define _HEAD_int add(int a,int b);#endif生成目标文件 生成要加编译器选项 -fpicgcc -fpic -c add.c然后生成动态库原创 2015-07-22 22:32:01 · 3176 阅读 · 0 评论 -
windows平台多线程同步之Mutex的应用
**windows平台多线程同步之Mutex的应用**———————-- **前言****线程组成**:1. 线程的内核对象,操作系统用来管理该线程的数据结构。2. 线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。 操作系统为每一个运行线程安排一定的CPU时间 —— **时间片**。系统通过一种循环的方式为线程提供时间片,线程在自己的时间内运行,多个线程不断地切换运行,因时原创 2015-07-12 18:27:23 · 4963 阅读 · 0 评论 -
windows平台多线程同步之Event的应用
windows平台多线程同步之Event的应用前言 线程组成: 线程的内核对象,操作系统用来管理该线程的数据结构。线程堆栈,它用于维护线程在执行代码时需要的所有参数和局部变量。 操作系统为每一个运行线程安排一定的CPU时间 —— 时间片。系统通过一种循环的方式为线程提供时间片,线程在自己的时间内运行,多个线程不断地切换运行,因时间片相当短,因此,给用户的感觉,就好像线程是同时运行的一样原创 2015-07-12 23:38:00 · 5351 阅读 · 2 评论 -
最全面的linux信号量解析
信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程) 所拥有。 信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明 它被占用,测试的线程要进入睡眠队列中,等待被唤醒。二.信号量的分类在学习信号量之前,我们必须先知道——Linux提供两种信号量: (1) 内核信号量,由内核控制路径使用 (2) 用户态进程使用的信号量转载 2015-07-09 09:26:17 · 2732 阅读 · 0 评论 -
漫谈进程与线程
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。原创 2015-07-03 16:32:58 · 1529 阅读 · 0 评论 -
c++标准头文件的结构
对c++标准头文件中一些通用结构的理解原创 2015-06-30 13:31:50 · 2449 阅读 · 0 评论 -
C++中指针详解
和其它变量一样,指针是基本的变量,所不同的是指针包含一个实际的数据,该数据代表一个可以找到实际信息的内存地址。这是一个非常重要的概念。许多程序和思想依靠指针作为他们设计的基础。开始 怎样定义一个指针呢?除了你需要在变量的名称前面加一个星号外,其它的和别的变量定义一样。举个例子,以下代码定义了两个指针变量,它们都指向一个整数。int* pNumberOne;转载 2015-06-28 19:34:29 · 1588 阅读 · 0 评论 -
“只生一个娃”--设计模式中的单例模式
“只生一个娃”–设计模式中的单例模式(Singleton) 引言 被人问到什么是单例模式,突然回答不上来,似乎印象不深了。回去补了一下功课,突然明白了,原来在项目中一直使用的日志模块即采用了单例模式,只是熟视无睹,没有意识到罢了。 所谓单例模式(Singleton),即指一个类只有一个实例(Instance),并给外界提供访问该实例的一个全局访问点。 通常我们可以使用全局变量的方原创 2015-07-26 21:59:16 · 2602 阅读 · 0 评论 -
STL系列之vector(容器)
介绍vector中文名容器,是C++标准模板库中的内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。这意味着可以使用常规指针偏移的方式访问元素,使用数组形式访问一样有效。但与数组不同的是,它们的大小可以动态变化,并通过容器自原创 2015-06-29 22:59:00 · 2686 阅读 · 0 评论 -
STL系列之map(映射)
介绍 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。map由键(key)和值(value)构成一对单元,key 和 value可以是任意你需要的类型。对于迭代器来说,可以修改实值,而不能修改key。 map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数原创 2015-07-01 21:57:32 · 5061 阅读 · 0 评论