- 博客(25)
- 收藏
- 关注
引用计数简单实现
延迟销毁资源,不具备写时复制功能,贴出代码 class DataSource{private: volatile unsigned int *m_pICount; double *m_pData;public: DataSource(double *pData); ~DataSource(); DataSource(const DataSource...
2012-03-17 17:08:57
211
1
原创 转 浅谈软件开发定律系列之帕金森定律(Parkinson’s Law)
帕金森定律(Parkinson’s Law)–“工作总是用完所有可利用的时间(Work expands to fill the time available)”,这意味着容易达到的目标将使员工工作上变得松懈–如果你给自己安排了充裕的时间从事一项工作,你会放慢你的节奏以便用掉所有分配的时间。反思:–1如何规避帕金森定律?–2如果整个项目有20%的缓冲时间,你会如何分配这20%的缓冲?...
2011-11-24 14:14:03
310
QT-Linguist国际化的简单实现
QT-Linguist国际化的简单实现 QT-Linguist工具主要用在项目的多语言翻译处理过程中,所有先简单介绍一下整个多语言处理过程,最后介绍Linguist的用法。 QT项目实现多语言,必须做两件事:1)确保每一个用户可见的字符串都使用了tr()函数2)在应用程序启动的时候,使用QTranslator载入一个翻译文件(.qm) (一)编写源码类Speed...
2011-11-20 16:25:25
349
原创 单实例Singleton设计模式
(一)C++实现方式: class OnlyOne{ int data;public: static OnlyOne& Instance() { static OnlyOne uniqueInstance; return uniqueInstance; }public: int GetData(){return data;}pro...
2011-10-15 02:19:25
95
java 文件复制
使用FileInputStream+BufferedInputStream与FileOutputStream+BufferedOutputStream实现文件复制,是很多人普遍想到的一种方法。在这里,我将给出另外一种方法,使用FileChannel通道。其实,还有一些其他方法,想了解更多,清参见我转载的文章:JAVA NIO 简介。不多说,直接贴出源码:srcFile和destFile:均...
2011-10-05 01:06:54
74
原创 JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的...
2011-10-04 23:38:57
95
c++非公有虚函数探究
(一)公有虚函数子类通过覆盖公有虚函数的方式实现多态是最常见的情况。指向子类对象的基类指针调用被子类覆盖的函数,实际上,调用的是子类的函数。以下代码: class Base{public: virtual void foo() { cout<<"Base::foo"<<endl; }};c...
2011-09-28 15:50:30
162
原创 Android socket编程要点
1. Android模拟器的默认IP地址是127.0.0.1,而给主机分配了IP 10.0.2.2。2. 在文件AndroidManifest.xml中设置权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name=...
2011-09-16 08:34:33
82
原创 PDU
7-bit编码:发送普通ASCII字符;8-bit编码:通常用于发送数据消息;UCS2编码:用于发送Unicode字符。而一般的PDU编码由A B C D E F G H I J K L M十三项组成,其中这十三项的释义分别为:A:短信息中心地址长度,2位十六进制数(1字节)。B:短信息中心号码类型,2位十六进制数。C:短信息中心号码,B+C的长...
2011-09-15 17:31:19
186
c/c++位字段
位字段 定义位字段是C语言中一种存储结构,不同于一般结构体的是它在定义成员的时候需要指定成员所占的位数。所有基础的数据类型, 最大的也不过 10 个字节;我们可以自定义的数据类型 -- struct, 通过把若干类型组合在一起, 让一种类型可以大很多.我们知道, 一个字节有八个 Bit 组成; struct中的 "位字段" 是以 Bit 为单位的, 这已经是计算...
2011-08-18 14:36:04
1325
原创 Objective-C的Initialize初始化方法研究
Objective-C的Initialize初始化方法研究 这篇文章介绍了Objective-C比较底层的内容,主要讲解initialize和init方法的区别。从这篇文章中我们不光可以了解Objective-C在初始化时所做的事情,更可以学习到一些如何研究Objective-C语言内部到底做了什么的方法,这样你也可以自己对更深层次的内容进行探寻。 Objective-C很有趣的一...
2011-08-17 10:59:02
91
原创 c/c++不定参数函数
不定参数函数stdarg.h是C语言中C标准函数库的头文件,stdarg是由stdandard(标准) arguments(参数)简化而来,主要目的为让函数能够接收不定量参数。 C++的cstdarg头文件中也提供这样的机能;虽然与C的头文件是兼容的,但是也有冲突存在。不定参数函数(Variadic functions)是stdarg.h内容典型的应用,虽然也可以使用在其他由不定参数函数调...
2011-08-16 17:32:44
330
原创 从c++到Objective-C
1. 头文件依然是.h2. .cpp变成了.m3. #import代替了#include,#import保证只会引用一次,相当于.h里的#ifndef #define #endif模式4. 用@interface … @end来声明类,取代class ClassName{}5. 用@implementation … @end来实现类6. Data Members放在@interface Class...
2011-08-02 12:46:59
70
原创 c++内存分配优先使用内存池,而不是new,delete
c++内存分配优先使用内存池,而不是new,delete容健行@2008-2-1转载请注明出处trackback:http://www.devdiv.net/home/space.php?uid=125&do=blog&id=364 认识一下new和delete的开销:new和delete首先会转调用到malloc和free,这个大家应该很熟识了。很多人...
2011-04-08 16:13:19
153
原创 RAII惯用法:C++资源管理的利器
RAII惯用法:C++资源管理的利器RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯...
2011-04-04 23:18:24
97
C++书写拷贝构造函数,重载赋值操作符和clone函数需要注意问题
对于C++类:显示地写出拷贝构造函数,重载赋值操作符和析构函数是良好的习惯,但在写构造函数时需要注意一些容易出现的错误,如下面的代码: #include <iostream>using namespace std; class M{public: M(){} M(const M &m){ cout&...
2011-04-04 14:03:28
138
C++命名空间与头文件的关系
C++命名空间与头文件的关系:(一)添加一个头文件demonamespace.h,内容如下#ifndef DEMONAMESPACE_H_#define DEMONAMESPACE_H_ class A{public: int value;}; namespace mynp{ A ma;} #endif /*DEM...
2011-04-04 11:06:21
804
原创 C++:源文件与头文件有什么区别
C++的源代码文件分为两类:头文件(Header file)和源文件(Source code file)。头文件用于存放对类型定义、函数声明、全局变量声明等实体的声明,作为对外接口;而源程序文件存放类型的实现、函数体、全局变量定义.C++的源代码文件分为两类:头文件(Header file)和源文件(Source code file)。头文件用于存放对类型定义、函数声明、全局变量声明等实...
2011-04-04 10:17:33
883
原创 关于GTK各个循环函数的介绍与使用
关于GTK各个循环函数的介绍与使用Gtk+主循环的首要目的就是在连接到X服务器的文件描述符上监听事件,并将事件转发到构件上。本节解释怎样使用主循环,怎样给主循环添加新功能:当主循环在指定的时间间隔内空闲时、当一个文件描述符已经读或写就绪、以及当主循环退出时调用一个函数。2.10.1主循环基本知识从根本上来说,主循环是由glib实现的。Gtk+将glib主循环连接...
2011-04-01 22:17:01
577
原创 SQL中的左连接与右连接的区别
SQL中的左连接与右连接的区别 A表(a1,b1,c1) B表(a2,b2)a1 b1 c1 a2 b21 跑步 90 1 Tom2 游泳 80 2 Lucy3 跳远 85 5 Gray select A.*,B.* f...
2011-03-31 18:15:42
201
原创 Activity的跳转与传值
Activity的跳转与传值 以下例子,存在两个Activity文件,MainAcitivity和SelectInputActivity。由MainActivity跳转到SelectInputActivity,并由SelectInputActivity返回到MainActivity。 (1)无返回结果,从一个Activity启动另一个Activity,直接startActiv...
2011-03-30 15:26:04
80
原创 求集合的所有子集的算法(C++)
求集合的所有子集的算法对于任意集合A,元素个数为n(空集n=0),其所有子集的个数为2^n个如集合A={a,b,c},其子集个数为8;对于任意一个元素,在每个子集中,要么存在,要么不存在,对应关系是: a->1或a->0 b->1或b->0 c->1或c->0映射为子集: (a,b,c) (1,1,1)->(a,b...
2011-03-26 20:01:11
3931
1
原创 牛数问题解析
一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛……问农夫10年后有多少头牛?n年呢?这里主要谈一下解决这种问题的思想。首先可以联系斐波那契数列,设f(n)为第n年的牛,则f(n) = f(n - 1) + f(n - 2)————>表达式1-1即第n年的牛为去年牛的个数f(n - 1)加上今年出生牛的个数,那么今年有多少头牛能生呢...
2011-03-26 19:56:50
428
原创 全排列算法非递归实现和递归实现 (C++)
(一)非递归全排列算法基本思想是: 1.找到所有排列中最小的一个排列P. 2.找到刚刚好比P大比其它都小的排列Q, 3.循环执行第二步,直到找到一个最大的排列,算法结束.下面用数学的方法描述:给定已知序列 P = A1A2A3An ( Ai!=Aj , (1<=i<=n , 1<=j<=n, i != j ) )找到P的一个最小排列Pmin...
2011-03-26 19:55:18
649
原创 以图找图
十个相似图片搜索网站(以图找图)图片搜索的定义:http://baike.baidu.com/view/239484.htm你想凭着一张现有图片找出它的原始图片,或者是凭着一张小的缩略图找出原始大图吗?下面的十款搜索引擎可以帮你实现,以图找图,以图搜图,以图片搜索相似的图片。一:http://tineye.com/Tineye是典型的以图找图搜索引擎,输入本地硬盘上的图片或者输入图...
2011-03-26 19:49:43
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人