随笔- 191
文章- 0
评论- 35
阅读-
21万
随笔分类 - c++
研究高效c++
配置DLL工程
摘要:说明 参数 例子 说明 Dll或者exe输出路径 ConfigurationProperties General Output Directory ..\..\bin\x64d\ 输出Dll路径和名字 Linker General Output File $(OutDir)\$(ProjectNam
阅读全文
关于项目属相版本不对的一些问题,库加载不了
摘要:使用svn对比,查看改变后的工程项目,一般是项目改变后,导致库的配置属性出问题了 Multi-threaded Debug DLL (/MDd) 这个不能随便改,有可能导致库的版本不对 还有,虚函数重写要重新编译 库的配置出问题 或者头文件没有提交,导致头文件和库的版本不一样 欢迎加微信 nuonu
阅读全文
c运行库冲突问题
摘要:按照网上的方法,各种调试不成功,后来改成用共享MFC的dll,然后回退新加的代码,再把#include #ifndef _AFX_NO_DB_SUPPORT#include // MFC ODBC #endif // _AFX_NO_DB_SUPPORT#ifndef _AFX_NO_DAO_SUP...
阅读全文
智能指针
摘要:最近项目中使用boost库的智能指针,感觉智能指针还是蛮强大的,在此贴出自己学习过程中编写的测试代码,以供其他想了解boost智能指针的朋友参考,有讲得不正确之处欢迎指出讨论。当然,使用boost智能指针首先要编译boost库,具体方法可以网上查询,在此不再赘述。 智能指针能够使C++的开发简单化,主要是它能够自动管理内存的释放,而且能够做更多的事情,即使用智能指针,则可以再代码中new了之后不用delete,智能指针自己会帮助你管理内存资源的释放。 Boost库的智能指针有很多种,下面通过示例代码来说明其中share_ptr的使用方法。 // test.cpp : Defines the e
阅读全文
shared_ptr源码解读
摘要:1 介绍众所周知,auto_ptr由于它的破坏性复制语义,无法满足标准容器对元素的要求,因而不能放在标准容器中;如果我们希望当容器析构时能自动把它容纳的指针元素所指的对象删除时,通常采用一些间接的方式来实现,显得比较繁琐。boost库中提供了一种新型的智能指针 shared_ptr,它解决了在多个指针间共享对象所有权的问题,同时也满足容器对元素的要求,因而可以安全地放入容器中。现在我们可以这样写: vector shared_ptrBook books;books.push_back( shared_ptrBook(new Book()) );2 实现shared_ptr是怎么实
阅读全文
按位操作
摘要:修改整数值中的位时,可以使用4个按位运算符,如表3-1所示。表3-1 按位运算符运 算 符说 明~这是按位求反运算符。它是一个一元运算符,可以反转操作数中的位,即1变成0,0变成1&这是按位与运算符,它对操作数中相应的位进行与运算。如果相应的位都是1,结果位就是1,否则就是0^这是按位异或运算符,它对操作数中相应的位进行异或运算。如果相应的位各不相同,例如一个位是1,另一个位是0,结果位就...
阅读全文
在vc中作用stl的方法
摘要:在程序中包含相应的头文件,STL中提供了新旧两种形式的头文件,一种是以.h结尾的老式头文件,一种是新式的头文件 #include //老式头文件,使用此文件时不用显式的是用名字空间,比如using namespace std;//可以不用这句 #include //新式的头文件,使用此类头文件的时候必须使用using 语句指明将要使用的名字空间,如us...
阅读全文
职责链模式
摘要:#include "iostream.h" class CHandle { public: CHandle(){} virtual ~CHandle(){} public: virtual void SetHandle(CHandle *handle){}; virtual void ProcessHandle(int a){} ; public: CHandle *m_hand; }...
阅读全文
交叉引用的几种方法
摘要:两个不同的类相互引用的情况下头文件包含问题 2008-06-02 15:45:36 标签:头文件 不同类 相互引用 解决方法 [推送到技术圈] 转载自http://www.cnblogs.com/sunnyjones/archive/2008/03/10/1099521.html ...
阅读全文
数据结构之树
摘要:二叉树的使用方法及遍历 #include "iostream.h" template class CTree { public: CTree(const T &item, CTree*lp = NULL, CTree*rp = NULL); CTree *GetLp(void) const; CTree *GetRp(void) const; CTree *GetNode(const ...
阅读全文
数据结构之树
摘要:二叉树的使用方法及遍历 #include "iostream.h" template class CTree { public: CTree(const T &item, CTree*lp = NULL, CTree*rp = NULL); CTree *GetLp(void) const; CTree *GetRp(void) const; CTree *GetNode(const ...
阅读全文
数据结构之单向链表
摘要:所谓的数据结构很容易学习,我认为关键是在于对指针的概念的深刻理解 链表类一般由操作函数和节点构成,这个节点可以是结构,也可以是一个类 如下 #include "iostream.h" struct NODE { NODE(){Hext = NULL;}//结构的构造函数,可以去掉 int a; NODE *Hext;//指向下一个 }; class CLsit { public: ...
阅读全文
设计模式之单例模式
摘要:单例模式作用就是只生成一个实例,方法就是把构造函数设为私有 这样外界就不能用new操作符访问,也就不能生成更多的实例,而这 唯一的一个实例由内建的静态成员函数成生,代码如下 #include "iostream.h" class Csingle { public: Csingle(){} public: virtual ~Csingle(){} static Csingle* GetSin...
阅读全文
设计模式之适配器模式
摘要:所谓的适配器模式其实是加了一个抽像层,举例,当姚明打球的时候是需要一个翻译的,而这个翻译就是适配器 本来姚明不懂英语,是不能直接和队友交流的,所以需要一个翻译.这样就在翻译类里面内建一个姚明类,信息可 以通过翻译类的接口和姚明交流,代码如下 #include "iostream.h" class player//抽像,提出公共接口,便于扩展 { public: player(){} pla...
阅读全文
设计模式之备忘录模式
摘要:最近看了设计模式一书,感觉没什么难度,无非就是多态和继承的应用,今天先谈 一下备忘录模式从游戏的角度来说所谓的备忘录也就是对怪物的属性做一个备份, 这些属性包括血量,攻击力等用Menento保存这些属性,Menento只有存取的方法 和一个结构差不多,而Orginator类则用来存取Menentor类(或者说是结构),Caretaker 用来保存Menentor的初始值,这样就可以随时恢复...
阅读全文