08 2011 档案
摘要:一、下载及安装protobuf项目主页:http://code.google.com/p/protobuf/下载:http://code.google.com/p/protobuf/downloads/listprotobuf-2.4.1.tar.gz解压后进入protobuf-2.4.1目录进行安装:1、./configure(注:默认可能会安装在/usr/local目录下,可以加--prefix=/usr来指定安装到/usr/lib下,可以免去路径的设置,路径设置见Linux命令pkg-config)2、make3、make check4、make install(需要超级用户root权限
        阅读全文
            
摘要:一、编译和连接 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的 不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的使用带来麻烦。 为了解决编译和连接界面不统一的问题,人们找到了一些解决办法。其基本思想就是:事先把库的位置信息等保存起来,需要的时候再通过特定的工具将其中有用的 信息提取..
        阅读全文
            
摘要:malloc/free是c/C++语言的标准库函数;new/delete是c++的运算符,都可以用申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用malloc/free无法满足动态对象的要求。对象在创建是要自动执行Constructor函数,对象在消亡之前要自动执行Destructor函数。由于malloc/free是库函数不是运算符,不在编译器控制权限之内,不能够把Constructor及Destructor任务加于malloc/free.
        阅读全文
            
摘要:虚表(virtual table)The virtual table is actually quite simple, though it’s a little complex to describe in words. First, every class that uses virtual functions (or is derived from a class that uses virtual functions) is given it’s own virtual table. This table is simply a static array that the compil
        阅读全文
            
摘要:如果一个类拥有资源(堆,即分配的动态内存),当这个类的对象发生复制时复制了资源的过程就叫深拷贝,而存在资源(堆,即分配的动态内存)但并未复制资源的情况叫浅拷贝。编译器会为类提供一个默认拷贝构造函数就是一个浅拷贝。 浅拷贝存在的问题:类体内的成员需要开辟动态内存来存放资源,复制时如果用浅拷贝只会拷贝指向动态内存的指针,并未实际重新分配一块内存来存放资源,在对象虚构时,会出现两次释放同一块内存,导致运行错误。 浅拷贝: 1 #include "stdafx.h" 2 #include <iostream> 3 4 class Test 5 { 6 public: 7
        阅读全文
            
摘要:1、指针会分配内存区域,而引用不会。2、指针与引用在初始化时不同,具体:指针可以初始化为空,引用则不可以。3、指针指向值可以改变,但是引用一旦跟某个对象绑定,则无法改变。(程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。)
        阅读全文
            
 
                    
                     
                    
                 
                    
                 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号