07 2012 档案

new与malloc的区别
摘要:1、new是c++中的操作符,malloc是c中的库函数。2、new不止分配内存,而且会调用类的构造函数,同时,析构时会调用析构函数。(申请一个类对象的指针时) malloc只分配内存,不会进行初始化类的工作,同样,free不会调用析构函数。3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。4、new 和 malloc效率比较 new 有三个字母, malloc有六个字母 new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。 一:new delete. 阅读全文

posted @ 2012-07-19 17:35 陈朋 阅读(518) 评论(0) 推荐(0)

Google C++编程风格指南
摘要:背景Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。风格,也被视为可读性,主要指称管理C++代码的习惯。使用术语风格有点用词不当,因为这些习惯远不止源代码文件格式这么简单。使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通 阅读全文

posted @ 2012-07-11 17:41 陈朋 阅读(5071) 评论(0) 推荐(2)

静态库与导出函数、导出类
摘要:1、静态链接库新建“win32项目”,在“应用程序设置”中选择lib。新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下://文件:lib.h#ifndef LIB_H#define LIB_Hextern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数#endif//文件:lib.cpp#include "lib.h"int add(int x,int y){ return x + y;}编译后,会生成dll和lib两个文件,下面看如何使用。源码如下:#include <std 阅读全文

posted @ 2012-07-10 17:28 陈朋 阅读(9258) 评论(0) 推荐(0)

com调用错误 error LNK1107
摘要:fatal error LNK1107: 文件无效或损坏: 无法在 0x278 处读取解决方法1取消附加依赖项,改为在头文件中添加#pragma comment(lib , "Netapi32.lib")解决方法2是FAT32系统分区的问题.如果你的硬盘式用NTFS就没有问题。项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法为 是就OK了。 阅读全文

posted @ 2012-07-10 14:55 陈朋 阅读(682) 评论(0) 推荐(0)

一步步学Python(一)
摘要:该网站是非常棒的教程:http://sebug.net/paper/python/ch02.html本文只记录学习中出现的问题。1、Win下与LinuxLinux下是默认安装Python的。Win下需要安装并配置环境变量。win下选择编辑工具。2、空格Python语言的空格需要特别注意。3、一些语法问题由于版本问题,Python2.2之后的版本和之前的版本,语法不太一样。例如,旧版本的:print ‘jlasdfasdfasdfasdf’ 新版本的:print ('asdfasdflj;areqq')写代码的时候注意这些问题就可以了。 阅读全文

posted @ 2012-07-05 15:21 陈朋 阅读(162) 评论(0) 推荐(0)

浅谈虚继承
摘要:一、提出问题。有以下代码。class B{public: int a;};class D1 : public B{public: int b;};class D2 : public B{public: int c;};class E : public D1, public D2{public: int d;};其类图为,Bint a 4D1B::a , int c ... 阅读全文

posted @ 2012-07-05 14:46 陈朋 阅读(317) 评论(0) 推荐(0)

一道腾讯前端试题,主要是算法
摘要:题目:有一组数字,从1到n(假设n=10000),从中任意删除了3个数,顺序也被打乱,剩余数字放在一个n-3的数组里,请找出丢失的数字,要求算法比较快。题目是前端的,但实际上还算一道算法题,下面是一个比较快的算法,据说是《编程珠玑》里面使用到的。int _tmain(int argc, _TCHAR* argv[]){ int aOld[] = {5,1,3,0,9,2,7}; //4,6,8 int* aNew = new int[11]; //实际上是要取现有数字的下标 for (int i = 0; i < 7; i++) { int temp... 阅读全文

posted @ 2012-07-02 17:09 陈朋 阅读(864) 评论(0) 推荐(0)

lamp源码编译
摘要:在编译这些源码包之前,我们需要确认系统中有gcc,gcc-c++,make编译器,一般系统都自带了gcc和make编译器。一般安装一个源码包的过程是:1.解压源码包的tar.gz文件,如 tar -xvf mysql.tar.gz -C /opt/lamp,其中tar命令中的-C是指定解压路径.其实我们完全可以写一个shell脚本进行解压.2.配置源码,使用命令 ./configure3.编译源码,使用命令 make4.安装,使用 make install现在我们开始安装lamp环境,在此之前,我们需要安装一系列的必须库.安装libxml21.进入libxml2源码包目录,进行配置设置安装的路 阅读全文

posted @ 2012-07-02 16:23 陈朋 阅读(783) 评论(0) 推荐(0)