摘要: this指针并不是对象的一部分,他是隐式的,当类的对象被创建时,他指向类对象, this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象。全局仅有一个this指针,当一个对象被创建时,this指针就存放指向对象数据的首地址。 根据以下程序来说明thi 阅读全文
posted @ 2020-06-27 22:35 janeyjhon1 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句: 阅读全文
posted @ 2020-06-27 21:23 janeyjhon1 阅读(981) 评论(0) 推荐(0) 编辑
摘要: 重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。不能只有函数返回值类型不同。 阅读全文
posted @ 2020-06-27 20:22 janeyjhon1 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 注意: 1、每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Properties" -> "Debugging",在"Working Directory"设置dll的路径就可以了 2、无论是设置DLL目录 阅读全文
posted @ 2020-06-27 20:21 janeyjhon1 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Eg1.都没虚函数 #include<iostream> usingnamespace std; class Father{ public: Father(){ cout <<"this is the Father constructor!"<< endl; } void watchTv(){ co 阅读全文
posted @ 2020-06-27 20:17 janeyjhon1 阅读(84) 评论(0) 推荐(0) 编辑
摘要: C++在基类中声明一个带关键之Virtual的函数,这个函数叫虚函数;它可以在该基类的派生类中被重新定义并被赋予另外一种处理功能。通过指向指向派生类的基类指针或引用调用虚函数,编译器可以根据指向对象的类型在运行时决定调用的目标函数。这就实现了多态。 2、实例 #include<iostream> u 阅读全文
posted @ 2020-06-27 20:16 janeyjhon1 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例: 其中: B的虚函数表中存放着B::foo和B::bar两个函数指针。 D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(overr 阅读全文
posted @ 2020-06-27 20:14 janeyjhon1 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 还有有的参数是比如void a(char*,T*);这种形式怎样理解呀 形参可以不写 阅读全文
posted @ 2020-06-27 20:11 janeyjhon1 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 本人用的是vs2005中文环境,其他环境的朋友可以做为参考 步骤一:编译代码时生成map 文件和 cod 文件 我建立了一个名为DataAbort的项目,A)生成map文件,打开项目属性对话框,找到“链接--调试”在“生成映射文件”栏选择“是”; B)生成cod文件,打开项目属性对话框,找到“C/C 阅读全文
posted @ 2020-06-27 20:10 janeyjhon1 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 实际上HINSTANCE并非纯粹意义上的句柄(HANDLE),因为它实际上是由物理PE文件映射到WINDOWS进程的虚拟模块首地址,这个地址上包含了PE头信息和PE文件映射后的具体内容,微软将之作为句柄来体现在原因在于PE头过于复杂,使用者直接对PE结构进行访问不安全,这种编程手法在C语言编程中很常 阅读全文
posted @ 2020-06-27 20:09 janeyjhon1 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 当出现类的等号赋值时,会调用拷贝函数在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的。但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指 阅读全文
posted @ 2020-06-27 20:08 janeyjhon1 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 一、什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=100;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 下面看一个类对象拷贝的简单例子。 #include<iostream>usingnamespace st 阅读全文
posted @ 2020-06-27 20:07 janeyjhon1 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 在处理十六进制数据时,我们常常遇到的一个问题就是如何将十六进制转换后为十进制,特别是有特殊要求的格式转换,我这里就遇到了一个特殊要求的转换。 转换要求:一个数值由16位二进制来表示,高低位进行交换操作,并且是补码表示,比如: 4C F7 表示的是F7 4C 将F7 4C表示为二进制,由于最高位为1 阅读全文
posted @ 2020-06-27 19:58 janeyjhon1 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 特化模板函数 模板变量就是空了 阅读全文
posted @ 2020-06-27 19:56 janeyjhon1 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 函数重载只会发生在同一个类中,函数名相同,只能通过参数类型,参数个数或者有无const来区分。不能通过返回值类型区分,而且virtual也是可有可无的,即虚函数和普通函数在同一类中也可以构成函数重载。 基类和派生类中只能是隐藏或者覆盖。 1)隐藏是指派生类中有函数与基类中函数同名,但是没有构成虚函数 阅读全文
posted @ 2020-06-27 19:55 janeyjhon1 阅读(79) 评论(0) 推荐(0) 编辑
摘要: char a=sizeof(BYTE); //a=1; char b=sizeof(WORD); //b=2; char c=sizeof(DWORD); //c=4; char d=sizeof(int); //d=4; char e=sizeof(LPSTR); //e=4; char f=si 阅读全文
posted @ 2020-06-27 19:54 janeyjhon1 阅读(66) 评论(0) 推荐(0) 编辑
摘要: template<classT> classCDerivedpublic T { public: CDerived(); }; template<classT> { cout <<""<< endl; } void main() { CDerived<CBase1>D1; CDerived<CBas 阅读全文
posted @ 2020-06-27 19:53 janeyjhon1 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 1点等1/72英寸 25.4英寸转毫米 阅读全文
posted @ 2020-06-27 19:52 janeyjhon1 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 指针函数 声明格式为:*类型标识符函数名(参数表) //指针函数 void* f(int a,int b){ Data * data = new Data; data->a = a; data->b = b; return data; } 指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函 阅读全文
posted @ 2020-06-27 19:50 janeyjhon1 阅读(67) 评论(0) 推荐(0) 编辑
摘要: // 00222.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// #include <iostream> using namespace std;typedef void (*CallbackFun)(double height, void* contex);//定义一 阅读全文
posted @ 2020-06-27 19:49 janeyjhon1 阅读(54) 评论(0) 推荐(0) 编辑