hi man

博客园 首页 新随笔 联系 订阅 管理

随笔分类 -  C++

摘要:我用的是VS2010, 编译时遇到警告 "warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。"在网上查了一下, 下面地址就是解决方案.http://blog.csdn.net/hevc_cjl/article/details/8426882 阅读全文
posted @ 2013-03-01 17:15 KuPig 阅读(2116) 评论(0) 推荐(0)

摘要:ABSTRACT FACTORY(抽象工厂)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。BUILDER(生成器)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。FACTORY METHOD(工厂方法)定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的 实例化延迟到其子类。PROTOTYPE(原型)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。SINGLETON(单件)保证一个类仅有一个实例,并提供一个访问它的全局访问点。ADAPTER(适配器)将一个类的接口转换成客户希望的另外一个接 阅读全文
posted @ 2013-02-28 10:00 KuPig 阅读(251) 评论(0) 推荐(0)

摘要:QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计 数之差和时钟频率,就可以计算出事件经历的精确时间。 _LARGE_INTEGER time_start; //结束时间 _LARGE_INTEGER time_over; //计时器频率 double dqFreq; //计时器频率 LARGE_INTEGER f; QueryPerformanceFre... 阅读全文
posted @ 2013-02-27 16:02 KuPig 阅读(1180) 评论(0) 推荐(0)

摘要:网管装的系统, C: 是Fat32的....有时运行程序就会弹出未找到msvcr90d.dll这个对话框.下面是解这个蛋疼问题的方法.1>Manifest Tool下面有一个选项"使用FAT32解决办法"(Use FAT32 work around)是专门解决这个问题的.对于FAT32的磁盘,需要选择"Yes",默认是"No". 2>properties->property pages->linker->manifest file -->Allow Isolation,把“嵌入清单”选“否”,然后编 阅读全文
posted @ 2011-12-09 14:41 KuPig 阅读(449) 评论(0) 推荐(0)

摘要:现在告诉你它有什么用:现在是图形界面了。比如说像以前的文字界面的话,还有用。像dos命令,比如说,ipconfig -a ,它比ipconfig 多了一个参数。在程序中就可以通过它所带的参数而知道,使用者想怎么用它。使用者通过 -a 这个参数。告诉程序,要列出详细的信息。#include <stdio.h>int main(int argc, char *argv[]){ if(1 == argc) { printf("参数太少.\n"); getch(); exit(0); } if('s' == argv[1][1]) { printf(&q 阅读全文
posted @ 2011-10-12 11:06 KuPig 阅读(292) 评论(0) 推荐(0)

摘要:在网上看到的文章, 写的挺全的, 具有总结性质. 于是转过来了..源地址(呵呵, 他也是转的)http://www.cnblogs.com/skyczw/archive/2008/05/27/1208194.html《windows环境多线程编程原理与应用》中解释: 如果将类的封装比喻成一堵墙的话,那么友元机制就像墙上了开了一个门,那些得 到允许的类或函数允许通过这个门访问一般的类或者函数无法访问的私有属性和方法。友元机制使类的封装性得到消弱,所以使用时一定要慎重。友元类的说明将外界的某个类在本类别的定义中说明为友元,那么外界的类就成为本类的“朋 友”,那个类就可以访问本类的私有数据了。cla 阅读全文
posted @ 2011-10-11 10:00 KuPig 阅读(339) 评论(0) 推荐(0)

摘要:下面我就用Lock, Unlock分别代替EnterCriticalSection(),LeaveCriticalSection()吧. 这样说起来方便.// 线程1threadfunc1(){ Lock(); // 代码1 Unlock();}// 线程2threadfunc2(){ Lock(); // 代码2 Unlock();}当 线程1 执行了 代码1 时,先Lock(); 这时如果 线程2 被唤醒, 遇到Lock()的时候会根据CRITICAL_SECTIONcs 来是否可以使用 代码2。因 cs 已经被 线程1 所占领。所以第二个线程的Lock()语句将不会返回,而是处于挂起状态 阅读全文
posted @ 2011-06-16 23:07 KuPig 阅读(250) 评论(0) 推荐(0)

摘要:今天下班回来,在CBLOG闲逛。看到一道关于指针的面试题,刚开始看着有点绕。如下:#include <stdio.h> struct S { int i; int *p;}; int main() { S s; int *p = &s.i; p[0] = 4; p[1] = 3; s.p = p; s.p[1] = 1; s.p[0] = 2; return 0;}出错的原因是,对未作声明的地址赋值程序会崩溃。平时在工作中估计没有人会这样用的,可能就是考基本功吧。总结: 1> int * p = (int *)3; //... 阅读全文
posted @ 2011-06-01 00:49 KuPig 阅读(274) 评论(0) 推荐(1)

摘要:不多说,看两个截图。下图是,对象指针下图是,引用总结: 指针的构造其实是 地址->对象地址;而引用是 地址 = 对象地址..区别是很大的. 阅读全文
posted @ 2011-05-18 23:41 KuPig 阅读(252) 评论(0) 推荐(0)

摘要:刚在网上看到关于UML方面,感觉不错。转过来给大家分享。类之间的UML关系图软件开发类间关系有很多种,在大的类别上可以分为两种:纵向关系、横向关系。纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论。横向关系较为微妙,按照UML的建议大体上可以分为四种:1.依赖(Dependency)2.关联(Association)3.聚合(Aggregation)4.组合(Composition)它们的强弱关系是没有异议的:依赖<关联<聚合<组合然而它们四个之间的差别却又不那么好拿捏,需要好好体会。1.依赖:UML表示法:虚线+箭头关系:". 阅读全文
posted @ 2011-04-05 23:47 KuPig 阅读(708) 评论(0) 推荐(0)

摘要:今天看到 ostream 有一个叫 cerr的对象。 于是我就想到与 cout 有什么区别。主要是下面的代码,cout cerr 输出是一样的。int main ( void ){ cout << "cout here !" << endl; cerr << "cerr here !" << endl; return 1;}结果: cout here ! cerr here !这是主要不理解的地方, 后来我用命令行重定向输出的时候,发现了它们不同。即 cerr 只是显示在屏幕上, 而 cout 可以(从缓存 阅读全文
posted @ 2011-04-05 21:47 KuPig 阅读(249) 评论(0) 推荐(0)

摘要:C++编译的程序占用的内存分为以下几个部分:1、栈区stack由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区heap般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区static)全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束后有系统释放。4、文字常量区常量字符串就是放在这里的。 程序结束后由系统释放。5、程序代码区(text)存放函数体的二进制代 阅读全文
posted @ 2011-03-31 22:09 KuPig 阅读(246) 评论(0) 推荐(0)