C++、设计模式
就呆在云上
自信人生二百年会当水击三千里
展开
-
Facade模式
第一次看设计模式,挺有意思参考两本书,设计模式精解和设计模式精解-GoF 23 种设计模式解析附 C++实现源码FACADE 模式,正面模式?他之所以这么命名,是因为他在原系统之前放了一个新的接口(外观)他应用于: 不需要一个复杂的系统的所有功能,而且刻意创建一个新的类,包含访问系统的所有规则。如果只需要使用系统的部分功能,通常的情况,那么你为新类所创建的api将比原原创 2007-12-18 08:47:00 · 3852 阅读 · 1 评论 -
visual c++ 2008/2010/2012/2013/2015进行MySQL编程(ODBC) --(二) CDatabase操作数据库
终于他妈可以上图了,唉,继续吧。 本来是想做上下两次说完的,东西太多了,一次写完,我累,看起来也累。接上一篇文章讲吧,前面说到了具体的Mysql的ODBC驱动配置,链接如下:visual c++ 2008进行MySQL编程(ODBC) -- (一) 套装安装 visual c++ 2008进行MySQL编程(ODBC) --二 操作数据库visual c++ 2008进行MySQL编原创 2012-05-30 18:38:15 · 13971 阅读 · 25 评论 -
visual c++ 2008/2010/2012/2013/2015进行MySQL编程(ODBC) -- (一) 套装安装
最近写了有些技术类文章了,只因为最近研究多了些东西,有一些项目用到了,所以自己记录一下,怕自己忘记,如果有哪位同学有自己的见解,可以邮件或者回复,技术类的探讨,不管对否,都是欢迎的。操作之前,必须安装有Visual Studio 2008,其他的平台,我没有研究,我用的操作系统是Windows 7 Pro 64bit。回到正题,vc数据库编程操作数据库Mysql,使用ODBC驱动接口。而不是使用M原创 2012-05-29 21:30:12 · 13959 阅读 · 14 评论 -
C++ 函数模板特化导致的多重定义链接错误
函数模板,一般都是放在头文件里面,所以有些时候,我也会做一个特化,也放在这个头文件里面,当这个头文件出现多次的包含之后,就会出现链接多重定义的错误。原创 2013-08-01 10:52:46 · 4451 阅读 · 0 评论 -
C++ STL 容器自定义内存分配器
很多时候我们不要用默认的allocator的实现,我们需要自己的内存配置,所以我们可以做自己的分配器,这里说说必须要有的一些注意事项,因为有些是我犯错过的。需要有自己的一些类型定义比如pointer需要做自己的allocate和deallocate一定要有rebind实现,如果不理解,请看一下标准库里面的list,set等的实现,很容易的。原创 2013-08-06 14:29:58 · 7482 阅读 · 0 评论 -
Qt Creator创建C++源代码工程
Qt Creator 创建阅读C++源代码工程原创 2014-07-29 10:58:46 · 17703 阅读 · 1 评论 -
visual studio 2005/2008/2012 编译STLport 5.1.5
先说vs 2005编译STLportstlport源代码,可以添加到vs2005,过程也很容易。下载最新的STLport :http://sourceforge.net/project/showfiles.php?group_id=146814&package_id=162032我下的是5.1.5版本的。解压到c盘,然后进入C:/Program Files/Microsoft Visual Stu原创 2008-03-17 18:17:00 · 5314 阅读 · 4 评论 -
warning C4290 解决方式
粗暴的解决方式:#pragma warning( disable : 4290 )原创 2012-05-21 23:06:11 · 2381 阅读 · 0 评论 -
Windows 异步IO和 完成端口(IOCP)
见过网上好多的完成端口和网络通信的文章,呵呵,这里就简单的说说文件异步IO和完成端口,这里仅仅说说读取操作。下面是一些总结,很少有人提及,认真的看过MSDN文档之后得出的,欢迎指正。要对文件异步IO操作,需要在文件创建的时候指定FILE_FLAG_OVERLAPPED属性的;异步ReadFileEx是不能读取和IO完成端口绑定的文件句柄的;异步ReadFileEx对OVERLAPPED的h原创 2012-07-26 23:16:32 · 5859 阅读 · 2 评论 -
windows 下编译 Boost 1.50 + Visual Studio 2008
1、在c盘创建一个文件夹boost_1_50_02、下载最新的boost 库1.50到d盘,文件夹为boost_1_50_03、整个文件夹如下:D:\>cd boost_1_50_0D:\boost_1_50_0>dir Volume in drive D is D Volume Serial Number is 7CF4-5846 Directory of D:\boos原创 2012-07-19 21:22:32 · 3016 阅读 · 0 评论 -
推荐 C++的代码缩进编排更好的工具 -- Artistic Style(Astyle)
这个工具我称之为:Astyle具体网址为:Artistic Style 2.02文档说的非常好了,如果缩进之类的,细分到了每个方面。 为什么推荐这个工具呢?因为传统的indent是没有办法满足c++ er的需求了,只是适合c,这个工具适合C++等语言,也适合C#语言,具体可以参考文档吧。 说说Linux下面的安装: cd astyle/build/gccmake原创 2012-06-03 21:55:05 · 3383 阅读 · 0 评论 -
孟岩:什么是高级C++?
什么是高级C++?——软件工业化时代的C++价值观孟岩《程序员》杂志社开门见山主要论点: 1. C++本质上是一种重“创新”而轻“生产”的语言,到目前为止仍然是主流语言中最适合技术创新的一个; 2. 1995年之前,整个软件产业处于“创新为王”的阶段,C++是最适合这个阶段的语言,这是C++红极一时的大背景和根本原因。 3. 1995年发生了一系列影响深远的转载 2008-09-02 13:37:00 · 2986 阅读 · 0 评论 -
修改类的静态成员的共享属性
类的static成员,属于类,而不属于对象,因此,每一个类的对象都可以使用,使用模板改变这一特性。代码如下:vs2008 #include using namespace std;template class T> class Base {public: static int count; Base();};template class T>int BaseT>::原创 2008-01-10 17:16:00 · 2033 阅读 · 0 评论 -
C++ 运算符优先级列表 --C++ Operator Precedence
这个东西是在http://www.cppreference.com/operator_precedence.html上的一篇文章,我引用并且大致注释一下,水平有限。其实这些说是c++的,对于c语言一样的适用The operators at the top of this list are evaluated first.这些操作符从上倒下优先级递减!Associativity表原创 2008-03-16 21:42:00 · 2706 阅读 · 0 评论 -
visual c++ 2008/2010/2012/2013/2015进行MySQL编程(ODBC)-- (四) 终极实现 之 派生CRecordset 中
Visual C++ 2008进行MySQL编程这个系列已经出了好几篇了,如下:visual c++ 2008进行MySQL编程(ODBC) -- (一) 套装安装visual c++ 2008进行MySQL编程(ODBC) --(二) CDatabase操作数据库visual c++ 2008进行MySQL编程(ODBC) --三 查询数据库visual c++ 2008进行MySQL编程(原创 2012-06-05 21:23:42 · 4918 阅读 · 2 评论