C++

C++中malloc/free和new/delete 的使用

malloc/free的使用要点函数malloc的原型如下:void*malloc(size_tsize);用malloc申请一块长度为length的整数类型的内存,程序如下:int*p=(int*)malloc(sizeof(int)*length);我们应当把注意力集中在两个要素上:“类型转换”和“sizeof”。*malloc返回值的类型是void*,所以在调用malloc时要显式地进行类型转换,将void*转换成所需要的指针类型。*malloc函数

系统 2019-08-12 01:54:43 1766

C++

浅析C++中虚函数的调用及对象的内部布局

在我那篇《浅析C++中的this指针》中,我通过分析C++代码编译后生成的汇编代码来分析this指针的实现方法。这次我依然用分析C++代码编译后生成的汇编代码来说明C++中虚函数调用的实现方法,顺便也说明一下C++中的对象内部布局。下面所有的汇编代码都是用VC2005编译出来的。虽然,不同的编译器可能会编译出不同的结果,对象的内部布局也不尽相同;但是,只要是符合C++标准的编译器,编译结果和对象的内部布局应该是大同小异。首先,是一个有着简单继承关系的两个类

系统 2019-08-29 23:30:45 1747

C++

C++学习笔记(五)--虚函数表解析

前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从

系统 2019-08-29 23:23:28 1746

C++

Cassandra C++/NodeJs开发环境

工作的需要,开始更多地倾向于去中心化的结构,目前看来Cassandra算是去中心化DB中性能/管理最热门的选择,崇尚其P2P的理念。自身原因对JAVA不擅长(周围写C的好少),还是更热衷于C++/JS,所以把CassandrC++/NODEJS(内网环境下)搭建的过程记录下来,共同好者分享。1,一些条件:VituralBox4.3Win7x64Centos6.4x64_86(来自某国内某镜像网站)thrift-0.9.1.tar.gzopenssl-1.0

系统 2019-08-12 01:33:54 1746

C++

C/C++内存分配方式,栈区堆区 new/delete/mallo

http://blog.csdn.net/rujielaisusan/article/details/4622197内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

系统 2019-08-12 01:33:52 1741

C++

c++封装Word (比较全了)

小鱼儿C++处女作(vcword操作封装)本人先声明这个程序是参考了汪自军封装类来写的。如果程序对你有所帮助,我将感到很荣幸。。期末到了希望大家都不要挂科哦,反正我只有英语考了,貌似及格没有压力啊。。。。程序代码:#ifndefCMYWORD_H#defineCMYWORD_H#include"msword.h"#include//段落对齐的属性enumAlignment{wdAlignParagraphCenter=1,wdAlig

系统 2019-08-12 09:27:10 1736

C++

C++和JNI的数据转换

如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的例子JNI入门教程之HelloWorld篇SUNJNITutorial这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行处理转换。才可以被C/C++程序识别。比如我们在C++中有一个结构(Struct)DiskI

系统 2019-08-29 22:30:50 1723

C++

VC++小技巧-Output窗口输出定位

在使用VC++时,经常使用OutputDebugString往往Output窗口写一些调试信息,如果输出信息遵循某种格式,那么在Output窗口中点击相应输出文本就会跳到相应的代码行中。具体格式MSDN中有说,简单的说法,在输出文本的最前面是"文件名(行号):"的格式就可以了。一个例子,用在我的内存泄露检测代码中:wsprintf(output_temp,"%s(%d):>>>>>>>>>>>>memleaks!size=%d",memory_alloca

系统 2019-08-29 22:28:29 1722

C++

[C++]MySQL数据库操作实例

由于课程大实验需要使用c++操作MySQL数据库,经过一番研究终于成功实现VS2008中与MySQL的连接。环境设置:安装完MySQL之后,将安装目录中的MySQL5\lib\debug\目录下的libmysql.lib文件拷到VS2008安装目录中的VC\lib\下,然后在项目-选项-c/c++-常规中的附加包含目录以及链接器-常规中的附加库目录中加入“c:\MySQL\include\”,并且在链接器-输入中的附加依赖项内添加“libmysql.lib

系统 2019-08-12 09:30:27 1718

C++

Kinect SDK C++ - 2. Kinect Depth Data

TodaywewilllearnhowtogetdepthdatafromakinectandwhattheformatofthedataiskinectcodekinectInitializationTogetthedepthdatafromthekinect,simplychangetheargumenttoNuiImageStreaOpen().TheFirstargumentisnowNUI_IMAGE_TYPE_DEPATH,tellingthe

系统 2019-08-12 01:33:19 1715

C++

专家书单推荐:C++藏书阁

本文转载自:http://news.csdn.net/n/20060829/94184.html选择现在来推荐C++图书,看似蹊跷,实则是有原因的。我们的专栏去年初从Java图书开始,一年多的时间里始终对C++触及甚少。C++程序员出身的我,已经受到了不少好友和读者的质疑。去年是C++诞生20周年(从1985年第一个商业实现的发布算起),世界各地包括国内都举行了不少活动,当时本来已经动笔写了一个初稿,也想来个献礼,但是稿成之后,看看又不满意,加之俗务缠身,

系统 2019-08-29 23:16:51 1705

C++

[c/c++] linux c生成静态库&共享库

静态库libdemo.h1//libdemo.h2#ifndef_LIBDEMO_H3#define_LIBDEMO_H45voiddemo_call(char*msg);67#endiflibdemo.c1//libdemo.c2#include"libdemo.h"3#include45voiddemo_call(char*msg)6{7printf("%s\n",msg);8}编译库文件#编辑成目标文件gcc-clibdemo.c-

系统 2019-08-12 01:33:38 1700

C++

C++学习笔记(四)--虚函数表解析

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函

系统 2019-08-29 23:23:29 1692