04 2012 档案

有了malloc/free为什么还要new/delete !
摘要:malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。我们先看一看mallo... 阅读全文

posted @ 2012-04-26 17:33 陈朋 阅读(868) 评论(0) 推荐(0)

双重指针
摘要:指向指针的指针Void fun(Type** pType, int &count){ pType = (Type*)malloc(sizeof(Type)*count); for(int I = 0; I < count; i++) { //把pType指向的指针向后移动i个,获取该指针后,将这个值指向的值赋值为i *(*pType+i) = i; }}使用指针时要仔细推敲一下,到底是声明、定义还是赋值,是取地址还是解引用,就可以知道怎么写,或者发现语法问题。 阅读全文

posted @ 2012-04-26 17:17 陈朋 阅读(374) 评论(0) 推荐(0)

extern使用
摘要:原始程序在文件中定义这样一个变量CTree* pTree = NULL; 全局变量pTree->InitCTree();……后来在别的文件中要用到pTree,所以在声明前面加了个extern关键字程序运行到初始化pTree时出错了。原来,extern的作用是告诉编译器pTree这个变量已经在别的文件中说明,但是不分配内存。所以第一次使用时一定要给它申请一定的空间。CTree* pTree = newCTree;这一句 的作用就是申请一段内存空间了。 阅读全文

posted @ 2012-04-26 17:15 陈朋 阅读(201) 评论(0) 推荐(0)

error C2144
摘要:错误12error C2144: 语法错误 : “bool”的前面应有“;”源文件中而这一句是没问题的。原因是:缺少";",都是提示下一行有错。#include "a.h " #include "b.h " ****如果在 a.h 里缺少分号, 则编译器会在 b.h 中会提示错误.如果在 b.h 里缺少分号,则编译器在该引用头文件的第一行提示这个错误。所以找的上个头文件的最后一行,果然发现少了个分号。 阅读全文

posted @ 2012-04-20 14:56 陈朋 阅读(4473) 评论(1) 推荐(1)

Mongdb windows下安装
摘要:网上还是有很多这方面的教程的,安装时比较顺利。安装文件:官方网站http://www.mongodb.org/downloads选择对应自己系统的文件。一、解压缩文件。 将压缩包解压。我的目录为E:\mongdb\mongdb二、建立工作目录。 1、建立数据存放目录 E:\mongodb\data\db 2、建立日志文件 E:\mongodb\log\mongodb.log三、启动mongdb服务。 控制台进入解压后的工作目录,输入命令E:\mongodb\mongodb\bin>E:\mongodb\mongodb\bin\mongod.exe --dbpath=E:\mong... 阅读全文

posted @ 2012-04-12 00:58 陈朋 阅读(1349) 评论(0) 推荐(0)

虚函数工作机制
摘要:概述:虚函数的目的是实现运行时多态,程序在运行时才知道要调用那些函数。这属于泛型技术(包括模板、RTTI、虚函数)。使用:用于父类型指针指向子类的对象时。虚函数表V-table类中成员函数在内存中不占空间,这个比较好理解。例如一个汽车类,有成员轮子、方向盘,有成员方法 跑(),我们制造出一辆汽车的时候只有轮子、方向盘占用空间,而汽车会跑并不会占用内存的。假如声明一个虚函数,汽车带车斗(),具体带什么车斗呢,不晓得,让子类去实现。大卡车类有个7吨位的车斗,小货车类有个2吨位的车斗,三轮车类有个小车斗。父类汽车类中是什么样子的呢,父类中声明虚函数,就是拿一个小本本(指针),记下来所有的虚函数。当然 阅读全文

posted @ 2012-04-09 23:01 陈朋 阅读(2377) 评论(0) 推荐(0)

Beep音乐程序
摘要:C++中使用Beep也可以进行谱曲。void HappyBirthday (void){ unsigned FREQUENCY[] = {392,392,440,392,523,494, 392,392,440,392,587,523, 392,392,784,659,523,494,440, 689,689,523,587,523}; unsigned DELAY[] = {375,125,500,500,500,1000, 375,125,500,500,500,1000, ... 阅读全文

posted @ 2012-04-09 21:30 陈朋 阅读(385) 评论(0) 推荐(0)

Java IO
摘要:1、概念Java将数据从源(文件、内存、键盘、网络)读入到内存 中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分。2、分类按照不同的分类标准,IO流分为不同类型。主要有以下几种方式:按照数据流方向、数据处理的单位和功能。还有一些分类比如:对象流、缓冲流、压缩流、文件流等等。其实都是节点流和处理流的子分类。不管流的分类是多么的丰富和复杂,其根源来自于四个基本的类。这个四个类的关系如下:字节流字符流输入流InputStreamReader输出流OutputStreamWriter2.1输入流与输出流。数据 阅读全文

posted @ 2012-04-06 17:21 陈朋 阅读(384) 评论(0) 推荐(0)

数组作为参数的一个例子
摘要:今天要通过一个函数对数组进行赋值,需要用数组作为参数传入、传出。bool ReadFile(const char* filename, int32(&pData)[10], const int iSize){ ...... pData[i_index] = strtol(p_pos, &p_end, 10); ...... return true;}调用: int32 data[6]; if (!ReadFile(testfile, data, 6)) { //error }下面这个连接很不错的,可以学习下http://www.cnblog... 阅读全文

posted @ 2012-04-01 16:15 陈朋 阅读(192) 评论(0) 推荐(0)

error C1088 和 C2723
摘要:fatalerrorC1088关于fatalerrorC1088:无法刷新编译器中间文件:“C:\DOCUME~1\ADMINI~1\ LOCALS~1\Temp\_CL_ae41746agl”: No space left on device报错的原因是:C盘空间不足造成的。真神奇,这个错误竟然让我遇到了。error C2723“specifier”存储类说明符在函数定义上非法该说明符不能与函数定义一起在类声明之外出现。virtual 说明符仅可在类声明内的成员函数声明中指定。看下嘛的例子。class A{ virtual void fun();};virtual void A::fu... 阅读全文

posted @ 2012-04-01 13:16 陈朋 阅读(1229) 评论(0) 推荐(0)