2007年4月13日
摘要: CALLBACK 函数 Ø CALLBACK == WINAPI ==__stdcall 实际上就是一种调用模式,就是约定由调用函数来自行解决压栈参数,同 pascal 调用 Ø #define CALLBACK __stdcall #define WINAPI __stdcall #define WINAPIV ... 阅读全文
posted @ 2007-04-13 12:28 dgz 阅读(3654) 评论(0) 推荐(0) 编辑
摘要: vc中LNK2001错误以及解决方案 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainLIBCD.l... 阅读全文
posted @ 2007-04-13 12:17 dgz 阅读(1306) 评论(0) 推荐(0) 编辑
摘要: 对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=100; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include using namespace std; class CA { public: CA(int b) { a=b; } void Show () { cout using nam... 阅读全文
posted @ 2007-04-13 12:08 dgz 阅读(470) 评论(0) 推荐(0) 编辑
摘要: C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include void f... 阅读全文
posted @ 2007-04-13 12:03 dgz 阅读(350) 评论(0) 推荐(0) 编辑
摘要: int b = 500; const int* a = & [1] int const *a = & [2] int* const a = & [3] const int* const a = & [4] 如果你能区分出上述四种情况,那么,恭喜你,你已经迈出了可喜的一步。不知道,也没关系,我们可以参考《Effec... 阅读全文
posted @ 2007-04-13 11:56 dgz 阅读(546) 评论(0) 推荐(0) 编辑
摘要: static 的两大作用: 一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义... 阅读全文
posted @ 2007-04-13 11:52 dgz 阅读(352) 评论(0) 推荐(0) 编辑
摘要: * C++提供了四种新的类型强制: static_cast const_cast reinterpret_cast dynamic_cast 1)staic_cast静态强制; 不能在无关的指针之间进行static类型强制 class CAnimal { //... public: CAnimal(){} }; class CGiraffe:public CAnimal { //... publi... 阅读全文
posted @ 2007-04-13 11:41 dgz 阅读(9474) 评论(3) 推荐(0) 编辑
摘要: static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明 一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, regi... 阅读全文
posted @ 2007-04-13 11:23 dgz 阅读(323) 评论(0) 推荐(0) 编辑