2009年9月28日
摘要: 概述  在前面各章中,已多次使用过以“#”号开头的预处理命令。如包含命令# include,宏定义命令# define等。在源程序中这些命令都放在函数之外, 而且一般都放在源文件的前面,它们称为预处理部分。  所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理是C语言的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统将自... 阅读全文
posted @ 2009-09-28 15:37 dgz 阅读(407) 评论(0) 推荐(0) 编辑
  2007年8月23日
摘要: 刚刚弄了一个关于派生类的实验,里面涉及到了派生类的拷贝构造函数,这时才发现自己在这个知识点上还很模糊。在CSDN上面看了下相关的一篇文章后,稍微有了点感觉。现总以一个例子总结如下: 情况(1). 派生类的copy constructor未定义 #include using namespace std ; class base ... 阅读全文
posted @ 2007-08-23 06:16 dgz 阅读(2069) 评论(0) 推荐(0) 编辑
  2007年7月12日
摘要: 先看各自的概念: 虚函数是动态联编的基础,它是引入派生概念之后用来表现基类和派生类成员函数之间的一种关系的。虚函数在基类中定义,它也是一种成员函数,而且是非静态成员函数。 引自msdn: 若一个实例方法的声明中含有 virtual 修饰符,则称该方法为虚拟方法;一个虚拟方法的实现可以由派生类取代。取代所继承的虚拟方法的实现的过程称为重写该方法;在一个虚拟方法... 阅读全文
posted @ 2007-07-12 08:44 dgz 阅读(964) 评论(0) 推荐(0) 编辑
  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 阅读(9473) 评论(3) 推荐(0) 编辑