C/C++
lming_08
这个作者很懒,什么都没留下…
展开
-
C语言实现C++多态
在最近工作中,每天看的代码都是C++代码,而以前很长一段时间写的都是纯C代码,考虑到本人记忆力逐年下降,现在将以前工作中C语言一些常用经验记录下来。这篇文章主要记录C语言如何实现面向对象语言C++的多态特性。先说C++的多态,C++中多态通常分为编译期多态和运行时多态,函数重载就是常见的编译期多态,使用virtual修饰的函数通常就表现为运行时多态了。这篇文章主要讲运行时多态,C++运行时原创 2014-03-19 17:00:10 · 1319 阅读 · 0 评论 -
在VS中设置预编译头从而提高编译速度
其实这种方法在之前工作的时候也碰到过,今天写程序时发现每次修改后再编译的速度很慢,让人崩溃!于是采用设置预编译头的方法,结果编译速度大幅提高!本文通过我这次的程序实例讲解这种方法。先看下VS中工程的文件结构其中common.h文件中内容为:#ifndef _COMMON_H_#define _COMMON_H_#include #include #include原创 2014-04-17 20:33:10 · 6186 阅读 · 0 评论 -
C语言中的柔性数组
今天浏览酷壳上一篇文章http://coolshell.cn/articles/11377.html时,发现了有关“零长度的数组”的一些知识,其实之前在论坛中也见过这种用法,但是当时对此不太理解,时间一长就慢慢淡忘了该知识点。于是今天特意查了资料,总算弄清“零长度的数组”即柔性数组这一知识点,现在记录如下。零长度的数组一般见于结构体中,而直接声明零长度数组,例如,char str[0]原创 2014-04-15 21:33:41 · 1021 阅读 · 0 评论 -
对象序列化之Boost.Serialization
最近在写基于海量点云数据建模程序时,碰到一个效率问题;整个建模过程是管道线方式,这里简单地看作是两步,第一步就是生成所需的数据,第二步即是基于这些生成的数据建模;目前所做的工作就是写第二步,第一步的操作不需要变动,这就造成每次对第二步进行修改(再编译链接后执行)后,重新生成所需数据,而这个生成过程是相当缓慢的,从而给开发调试阶段造成极大的时间浪费。于是就想到了对象序列化,而对象序列化有好几种方原创 2014-05-04 19:28:03 · 1584 阅读 · 0 评论 -
C++中的智能指针
众所周知,C++中对堆内存的申请与释放完全由用户来控制,这就造成用户在使用的时候经常造成内存泄漏、野指针、重复释放等常见的挂掉问题,所以我们有必要提供一套机制,使得用户只需申请相应的内存,不用管释放的问题,其实这属于著名的RAII(Resource Acquisition Is Initialization)技术 。在C++中这种技术称作“智能指针”,C++中的智能指针技术越来越受到广泛应原创 2014-05-13 09:16:40 · 1161 阅读 · 0 评论 -
快速排序(C/C++版)
快速排序是经典的排序算法, 快速排序关键点在于轴值的选取!关于这个,一般会从两端分别取值与默认轴值进行比较,从右边找到第一个比默认值小的值,从左边找到第一个比默认值大的值,然后交换这两个“哨兵“对应的值!最终达到的效果是轴值左边的都比轴值小,右边的比轴值大!闲话少说,直接上代码#include using namespace std;void print(int a[], int原创 2016-03-17 23:41:36 · 531 阅读 · 0 评论