 |
singleton模式的C++实现
|
|
| |
| singleton模式的c++实现Singleton 模式在C++中的一种实现
说明:本文介绍了Singleton模式在C++中的一种实现方式,此方式不但较好的解决了全部
Singleton对象析构的次序问题,也提出了一个解决Singleton派生类体系的方法。
------------------------------------------------------------------------------
--
by: 方泓
Last Updated: May-08-2002 | First Version:May-08-2002
------------------------------------------------------------------------------
--
介绍
在我们的编程实践中经常会遇到这样的情况,象Logger, MemoryManager,SystemInforma
tion等这些类在整个系统中只应存在一个实例,这时我们就可以使用Singleton模式来实现
这些类。Singleton是最基本最常使用的设计模式之一,很多模式可以使用Singleton模式
实现,如Abstract Factory, Builder, Prototype往往是通过Singleton来 ...
|
|
| 作者:不祥 jerry张贴于2004-03-09 22:11:24.0,共阅读2139次,回复0次 |
|
|
 |
const使用要点
|
|
| |
| 关于const的使用方法1、什么是const?
常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新
的。(当然,我们可以偷梁换柱进行更新:)
2、为什么引入const?
const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点
。
3、cons有什么主要的作用?
(1)可以定义const常量,具有不可变性。
例如:
const int Max=100;
int Array[Max];
(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
例如:
void f(const int i) { .........}
编译器就会知道i是一个常量,不允许修改;
(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。
同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内
容,只需要:const int Max=you want;即可!
(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。
还是上面的例子,如果在函数体内修改了i,编译器就会报错;
例如:
void f(const int i) { i=10;//error! }
(5) 为函数重载提供了一个参考。
class ...
|
|
| 作者:不祥 jerry张贴于2004-03-09 22:05:36.0,共阅读2034次,回复0次 |
|
|
 |
sizeof 和 alignment(对齐)
|
|
| |
| sizeof 和 alignment(对齐)
xueweizhong(原作) sizeof 和 alignment(对齐)
1: alignment的定义
alignment指的是对象的开始地址必须满足条件:
>>#pragma pack(push, 1)
<<任何地址
>>#pragma pack(push, 2)
<<偶数地址
>>#pragma pack(push, 4)
<<地址必须是4的倍数
>>#pragma pack(push, 8)
<<地址必须是8的倍数
2: 基本类型T的alignment(T)
对齐值就是上面所说的1, 2, 4, 8
现在对应于每个类型T, 都有一个alignment(T)和T对应,
这个对应关系究竟如何呢:
(以下针对我们现在所碰到的编译器而言)
<< char --> 1 (永远是1)
<< short
#pragma pack(1) --> 1
#pragma pack(2) --> 2
#pragma pack(4) --> 2 // 呵呵,这里是关键
... --> 2
<< int
#pragma pack(1) --> 1
#pragma p ...
|
|
| 作者:不祥 jerry张贴于2004-03-08 20:18:44.0,共阅读1957次,回复0次 |
|
|
 |
vc工程文件列表
|
|
| |
| .ncb,无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。
.aps: 资源辅助文件。
.opt: 工程关于开发环境的参数文件。如工具条位置信息等。
.clw:classwizard信息文件,ini文件的格式。
.dsp:项目文件,文本格式。
.dsw:工作区文件,与.dsp差不多。
.plg:编译信息文件,编译时的error和warning信息文件。
.hpg,生成帮助的文件的工程。
.mdp,旧版本的项目文件,相当于.dsp
.bsc,用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate Browse Info File,这样可以加快编译进度。
.map,执行文件的映像信息记录文件。
.pch,预编译文件,比较大,但可加快编译速度。
.pdb,记录了程序有关的一些数据和调试信息。
.exp,只有在编译DLL时才会生成,记录了DLL文件中的一些信息。
|
|
| 作者:不祥 bluejoe张贴于2004-03-03 14:06:17.0,共阅读2296次,回复0次 |
|
|
 |
文件传输协议(File Transfer Protocol, FTP)
|
|
| |
| 本文主要对FTP协议进行详细描述。 Echo Protocol这个协议可能是我知道的最简单的协议了。它主要用于调试和检测中。这个协议的作用也十分简单,接收到什么原封发回就是了。它可以基于TCP协议,服务器就在TCP端口7检测有无消息,如果有发送来的消息直接返回就是了。如果使用UDP协议的基本过程和TCP一样,也是收到什么返回什么,检测的端口也是7。文件传输协议(File Transfer Protocol, FTP)
1. 介绍
FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读TCP协议标准规范和Telnet协议标准规范。
2. 概览
在本节中我们将讨论一些表面上的问题,有些名词的定义请参阅TCP和Telnet参考文献。我们先介绍一下(1)字节大小,在FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。(2)控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令与应答的通信链路。(3)数据连接是传输数据的全双工连接。传输数据可以发生在服务器DTP和用户DTP之间也可以发生在两个服务器DTP之间。(4)DTP:数据传输过程(DT ...
|
|
| 作者:不祥 xler张贴于2004-02-26 12:35:25.0,共阅读2139次,回复0次 |
|
|