随笔 - 20, 文章 - 0, 评论 - 45, 引用 - 0
数据加载中……

C++

C++著名程序库的比较和学习经验
     摘要: 1、C++各大有名库的介绍——C++标准库
2、C++各大有名库的介绍——准标准库Boost
3、C++各大有名库的介绍——GUI
4、C++各大有名库的介绍——网络通信
5、C++各大有名库的介绍——XML
6、C++各大有名库的介绍——科学计算
7、C++各大有名库的介绍——游戏开发
8、C++各大有名库的介绍——线程
9、C++各大有名库的介绍——序列化
10、C++各大有名库的介绍——字符串
11、C++各大有名库的介绍——综合
12、C++各大有名库的介绍——其他库
13、C++名人的网站  阅读全文

posted @ 2011-04-28 22:21 Kenny Jiang 阅读(18336) | 评论 (9)  编辑

define的用法与注意事项
     摘要: #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对C语言的学习很不利。下面将分别对基本用法和特殊做详细介绍。  阅读全文

posted @ 2011-04-26 22:13 Kenny Jiang 阅读(2611) | 评论 (2)  编辑

C++中四种类型转换符的总结
     摘要: reinterpret_cast操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换,即二进制值没有变。
dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。
const_cast运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和exdivssion的类型是一样的。   阅读全文

posted @ 2011-04-25 22:05 Kenny Jiang 阅读(2080) | 评论 (2)  编辑

类模板和模板函数连接出错处理
     摘要: 对C++编译器而言,当调用函数的时候,编译器只需要看到函数的声明。当定义类类型的对象时,编译器只需要知道类的定义,而不需要知道类的实现代码。因此,因该将类的定义和函数声明放在头文件中,而普通函数和类成员函数的定义放在源文件中。
但在处理模板函数和类模板时,问题发生了变化。要进行实例化模板函数和类模板,要求编译器在实例化模板时必须在上下文中可以查看到其定义实体;  阅读全文

posted @ 2011-04-23 12:46 Kenny Jiang 阅读(5311) | 评论 (3)  编辑

函数调用的区别:_cdecl以及_stdcall
     摘要: 几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是问题的关键,如何清除?如果我们的函数使用了_cdecl,那么栈的清除工作是由调用者,用COM的术语来讲就是客户来完成的。这样带来了一个棘手的问题,不同的编译器产生栈的方式不尽相同,那么调用者能否正常的完成清除工作呢?答案是不能。如果使用__stdcall,上面的问题就解决了,函数自己解决清除工作。所以,在跨(开发)平台的调用中,我们都使用__stdcall(虽然有时是以WINAPI的样子出现)。那么为什么还需要_cdecl呢?当我们遇到这样的函数如 fprintf()它的参数是可变的,不定长的,被调用者事先无法知道参数的长度,事后的清除工作也无法正常的进行,因此,这种情况我们只能使用 _cdecl。到这里我们有一个结论,如果你的程序中没有涉及可变参数,最好使用__stdcall关键字。  阅读全文

posted @ 2011-04-19 13:23 Kenny Jiang 阅读(9869) | 评论 (12)  编辑

memmove、memcpy、strcpy
     摘要: strcpy只能处理字符串;如果拷贝带有特殊字符的串,就只能用memcpy或memmove。  阅读全文

posted @ 2011-04-16 21:50 Kenny Jiang 阅读(1685) | 评论 (0)  编辑