摘要:
this指针并不是对象的一部分,他是隐式的,当类的对象被创建时,他指向类对象, this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象。全局仅有一个this指针,当一个对象被创建时,this指针就存放指向对象数据的首地址。 根据以下程序来说明thi 阅读全文
posted @ 2020-06-27 22:35
janeyjhon1
阅读(468)
评论(0)
推荐(0)
摘要:
我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句: 阅读全文
posted @ 2020-06-27 21:23
janeyjhon1
阅读(1062)
评论(0)
推荐(0)
摘要:
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。不能只有函数返回值类型不同。 阅读全文
posted @ 2020-06-27 20:22
janeyjhon1
阅读(57)
评论(0)
推荐(0)
摘要:
注意: 1、每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Properties" -> "Debugging",在"Working Directory"设置dll的路径就可以了 2、无论是设置DLL目录 阅读全文
posted @ 2020-06-27 20:21
janeyjhon1
阅读(139)
评论(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
阅读(99)
评论(0)
推荐(0)
摘要:
C++在基类中声明一个带关键之Virtual的函数,这个函数叫虚函数;它可以在该基类的派生类中被重新定义并被赋予另外一种处理功能。通过指向指向派生类的基类指针或引用调用虚函数,编译器可以根据指向对象的类型在运行时决定调用的目标函数。这就实现了多态。 2、实例 #include<iostream> u 阅读全文
posted @ 2020-06-27 20:16
janeyjhon1
阅读(253)
评论(0)
推荐(0)
摘要:
1. 概述 简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例: 其中: B的虚函数表中存放着B::foo和B::bar两个函数指针。 D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(overr 阅读全文
posted @ 2020-06-27 20:14
janeyjhon1
阅读(133)
评论(0)
推荐(0)
摘要:
还有有的参数是比如void a(char*,T*);这种形式怎样理解呀 形参可以不写 阅读全文
posted @ 2020-06-27 20:11
janeyjhon1
阅读(101)
评论(0)
推荐(0)
摘要:
本人用的是vs2005中文环境,其他环境的朋友可以做为参考 步骤一:编译代码时生成map 文件和 cod 文件 我建立了一个名为DataAbort的项目,A)生成map文件,打开项目属性对话框,找到“链接--调试”在“生成映射文件”栏选择“是”; B)生成cod文件,打开项目属性对话框,找到“C/C 阅读全文
posted @ 2020-06-27 20:10
janeyjhon1
阅读(58)
评论(0)
推荐(0)
摘要:
实际上HINSTANCE并非纯粹意义上的句柄(HANDLE),因为它实际上是由物理PE文件映射到WINDOWS进程的虚拟模块首地址,这个地址上包含了PE头信息和PE文件映射后的具体内容,微软将之作为句柄来体现在原因在于PE头过于复杂,使用者直接对PE结构进行访问不安全,这种编程手法在C语言编程中很常 阅读全文
posted @ 2020-06-27 20:09
janeyjhon1
阅读(167)
评论(0)
推荐(0)
摘要:
当出现类的等号赋值时,会调用拷贝函数在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的。但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指 阅读全文
posted @ 2020-06-27 20:08
janeyjhon1
阅读(52)
评论(0)
推荐(0)
摘要:
一、什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=100;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 下面看一个类对象拷贝的简单例子。 #include<iostream>usingnamespace st 阅读全文
posted @ 2020-06-27 20:07
janeyjhon1
阅读(623)
评论(0)
推荐(0)
摘要:
在处理十六进制数据时,我们常常遇到的一个问题就是如何将十六进制转换后为十进制,特别是有特殊要求的格式转换,我这里就遇到了一个特殊要求的转换。 转换要求:一个数值由16位二进制来表示,高低位进行交换操作,并且是补码表示,比如: 4C F7 表示的是F7 4C 将F7 4C表示为二进制,由于最高位为1 阅读全文
posted @ 2020-06-27 19:58
janeyjhon1
阅读(521)
评论(0)
推荐(0)
摘要:
特化模板函数 模板变量就是空了 阅读全文
posted @ 2020-06-27 19:56
janeyjhon1
阅读(61)
评论(0)
推荐(0)
摘要:
函数重载只会发生在同一个类中,函数名相同,只能通过参数类型,参数个数或者有无const来区分。不能通过返回值类型区分,而且virtual也是可有可无的,即虚函数和普通函数在同一类中也可以构成函数重载。 基类和派生类中只能是隐藏或者覆盖。 1)隐藏是指派生类中有函数与基类中函数同名,但是没有构成虚函数 阅读全文
posted @ 2020-06-27 19:55
janeyjhon1
阅读(91)
评论(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
阅读(75)
评论(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
阅读(46)
评论(0)
推荐(0)
摘要:
1点等1/72英寸 25.4英寸转毫米 阅读全文
posted @ 2020-06-27 19:52
janeyjhon1
阅读(47)
评论(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
阅读(72)
评论(0)
推荐(0)
摘要:
// 00222.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// #include <iostream> using namespace std;typedef void (*CallbackFun)(double height, void* contex);//定义一 阅读全文
posted @ 2020-06-27 19:49
janeyjhon1
阅读(63)
评论(0)
推荐(0)
摘要:
01、WM_PAINT消息 LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高 02、滚动条WM_VSCROLL或WM_HSCROLL消息 LOWORD(wParam)指出了鼠标对滚动条的操作。比如上、下、左、右、翻页、移动等。 03、击键消息,有WM_SYSKEYD 阅读全文
posted @ 2020-06-27 19:48
janeyjhon1
阅读(674)
评论(0)
推荐(0)
摘要:
多文档一个文档里可以要开很多文档 阅读全文
posted @ 2020-06-27 19:46
janeyjhon1
阅读(57)
评论(0)
推荐(0)
摘要:
纯虚函数在基类中声明,在调用父类的纯虚函数,会在子类中是实现 #include <iostream>using namespace std; class Shape{public: int x, y;public: void set(int x, int y) { this->x = x; this 阅读全文
posted @ 2020-06-27 19:44
janeyjhon1
阅读(97)
评论(0)
推荐(0)
摘要:
#include <iostream> using namespace std; // 基类class Shape {public: // 提供接口框架的纯虚函数 virtual int getArea() = 0; void setWidth(int w) { width = w; } void 阅读全文
posted @ 2020-06-27 19:43
janeyjhon1
阅读(201)
评论(0)
推荐(0)
摘要:
在Win32 SDK中消息本身是作为一个结构体记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。这个记录类型叫做MSG,它在window中是这样声明的: typedef struct tagMSG { // msg HWND hwnd; //窗口句柄 UINT message; //消息 阅读全文
posted @ 2020-06-27 19:38
janeyjhon1
阅读(181)
评论(0)
推荐(0)
摘要:
Windows API数据类型表 ATOM 原子(原子表中的一个字符串的参考) BOOL 布尔变量 BOOLEAN 布尔变量 BYTE 字节(8位) CCHAR Windows字符 CHAR Windows字符 COLORREF 红、绿、蓝(RGB)彩色值(32位) Const 变量,该变量的值在执 阅读全文
posted @ 2020-06-27 19:33
janeyjhon1
阅读(211)
评论(0)
推荐(0)
摘要:
// 00222.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// #include <iostream> using namespace std;typedef void (*CallbackFun)(double height, void* contex);//定义一 阅读全文
posted @ 2020-06-27 19:31
janeyjhon1
阅读(75)
评论(0)
推荐(0)
摘要:
typedef typedef type-declaration synonym; The typedef keyword defines a synonym for the specified type-declaration. The identifier in the type-declara 阅读全文
posted @ 2020-06-27 19:30
janeyjhon1
阅读(64)
评论(0)
推荐(0)
摘要:
字符串编码格式转换 很多时候可能需要字符串编码的转换,最近我需要获取一段字符串的长度,我strlen() 获取的’你好’ 的字节长度为6 ,我记得每个汉字占用2字节 ,查了一下 UTF-8格式 汉字(含繁体)占3字节,需要转下码. 编码知识Qt常见的两种编码是:UTF-8和GBKUTF-8:Unic 阅读全文
posted @ 2020-06-27 19:28
janeyjhon1
阅读(3319)
评论(0)
推荐(0)
摘要:
OnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。 在view类中,Create 是虚函数由框架调用,是用来“生成一个窗口的子窗口”。 而OnCreate 函数是用来“表示一个窗口正在生成”。 一个窗口创建(Create) 阅读全文
posted @ 2020-06-27 19:26
janeyjhon1
阅读(389)
评论(0)
推荐(0)
摘要:
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中的explicit C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 阅读全文
posted @ 2020-06-27 19:23
janeyjhon1
阅读(153)
评论(0)
推荐(0)
摘要:
riit 子类和基类指针引用类型 阅读全文
posted @ 2020-06-27 19:21
janeyjhon1
阅读(166)
评论(0)
推荐(0)
摘要:
dynamic_castdynamic_cast运算符可以在执行期决定真正的类型。如果 downcast 是安全的(也就说,如果基类指针或者引用确实指向一个派生类对象)这个运算符会传回适当转型过的指针。如果 downcast 不安全,这个运算符会传回空指针(也就是说,基类指针或者引用没有指向一个派生 阅读全文
posted @ 2020-06-27 19:20
janeyjhon1
阅读(63)
评论(0)
推荐(0)
摘要:
C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。 1.const 修饰成员变量 1 #include<iostream> 2usingnamespace s 阅读全文
posted @ 2020-06-27 19:14
janeyjhon1
阅读(85)
评论(0)
推荐(0)
摘要:
在C++的Template中很多地方都用到了typename与class这两个关键字,有时候这两者可以替换,那么这两个关键字是否完全一样呢? 事实上class用于定义类,在模板引入c++后,最初定义模板的方法为:template<class T>,这里class关键字表明T是一个类型,后来为了避免c 阅读全文
posted @ 2020-06-27 19:12
janeyjhon1
阅读(227)
评论(0)
推荐(0)
摘要:
C++模板的作用就是你不确定该模板要用到什么类型,可以是原有类型,也可以是自己定义的类等.通常把一个东西用于多处不同类型的地方,就需要建立该东西的模板.比如说你有一个模具(相当于模板),然后你需要蓝色的,所以用该模具做出蓝色的东西,接着你又需要红色的,然后再用该模具做出红色的东西.可见模板是可复用的 阅读全文
posted @ 2020-06-27 19:10
janeyjhon1
阅读(1864)
评论(0)
推荐(0)
摘要:
第一、四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 阅读全文
posted @ 2020-06-27 19:07
janeyjhon1
阅读(331)
评论(0)
推荐(0)
摘要:
而MFC编写的的WinMain函数则调用了CWinApp::InitInstance函数,所以InitInstance看起来似乎就是MFC程序的入口点。 在CWinApp这个类中除了有一般类都有的构造函数,一个重要的成员函数就是InitInstance,我们知道,在WINDOWS环境下面可以运行同一 阅读全文
posted @ 2020-06-27 19:06
janeyjhon1
阅读(191)
评论(0)
推荐(0)
摘要:
回调函数是一个时时听到的概念,比如在windows API编程时遇到的WinProc函数,就是我们编写而由操作系统调用的函数。现在,我们需要慢慢又详细的记录一下这个问题。 库与使用者的问题 在开始之前,首先我们想像这样一个情景,一个大型软件公司开发一套软件库提供给用户使用。在这句话中,出现两个对立面 阅读全文
posted @ 2020-06-27 19:04
janeyjhon1
阅读(107)
评论(0)
推荐(0)
摘要:
我在搞高斯滤波时,发现一个静态回调函数: C/C++ code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 static void myGaussianBlur(int, void *); //这里声明没有形参很好理解 int main() { srcImage = 阅读全文
posted @ 2020-06-27 19:01
janeyjhon1
阅读(69)
评论(0)
推荐(0)
摘要:
1. 构造函数的作用 构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建 对象时, 对象会自动调用它的构造函数。一般来说, 构造函数有以下三个方面 的作用: ■ 给创建的对象建立一个标识符; ■ 为对象数据成员开辟内存空间; ■ 完成对象数据成员的初始化。 2. 默认构造函数 当 阅读全文
posted @ 2020-06-27 18:59
janeyjhon1
阅读(1558)
评论(0)
推荐(0)
摘要:
串行化(Serialization)是计算机科学中的一个概念,它是指将对象存储到介质(如文件、内存缓冲区等)中或是以二进制方式通过网络传输。 serialize是指从档案文件中读取该对象或向档案文件中写入该对象的函数 CRuntimeClass 即是通过类变量来判定该变量是否为某一类的实例。由于指针 阅读全文
posted @ 2020-06-27 18:54
janeyjhon1
阅读(424)
评论(0)
推荐(0)
摘要:
WM_COMMAND产生的条件:点击菜单, 点击加速键,点击子窗口按钮,点击工具栏按钮。这些时候都有command消息产生。 WM_COMMAND消息中有两个参 数,wparam、lparam,定义如下: wParam 高两个字节 通知码 wParam 低两字节 命令ID lParam 发送命令消息 阅读全文
posted @ 2020-06-27 18:52
janeyjhon1
阅读(4231)
评论(0)
推荐(1)
摘要:
前言最近突然萌生把stl常用的库都通通自己过一遍的想法,算是对泛型编程的一次学习,也深入理解stl,还是对c++11知识的练习,就从智能指针开始吧。 另外,c++11让c++程序变得简洁优雅了许多,对这门语言有点爱不释手了。 智能指针原理通过使用引用计数的方式来自动的对动态申请的内存进行释放,保证指 阅读全文
posted @ 2020-06-27 15:58
janeyjhon1
阅读(241)
评论(0)
推荐(0)

浙公网安备 33010602011771号