- 博客(62)
- 问答 (2)
- 收藏
- 关注
转载 【C++专题】static_cast, dynamic_cast, const_cast探讨
首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;
2015-09-09 14:52:05
318
转载 c++ 副本构造器
我们都知道两个指针指向同一个变量时如果一个指针被释放那么另一个就会出问题为了说明问题我做了一个很恶心的小例子class C{public : C(int v) { ptrInt=new int; *ptrInt=v; valueInt = v; } ~C() { }
2015-09-09 14:33:24
442
转载 [C++][编程风格]C++命名规则
C++命名规范常见命名法: 匈牙利命名法:基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。 Camel命名法:即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线
2015-09-02 17:27:44
332
转载 C++流的概念
在C++语言中,数据的输入和输出(简写为I/O)包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间(当然可用该空间存储任何信息)进行输入输出这三个方面。对标准输入设备和标准输出设备的输入输出简称为标准I/O,对在外存磁盘上文件的输入输出简称为文件I/O,对内存中指定的字符串存储空间的输入输出简称为串I/O。C++语言系统为实现数据的输入和输出定义了一
2015-09-02 16:11:24
655
转载 C++成员函数的 重载、隐藏、覆盖分析
林锐博士的《高质量C++/C编程指南中对“成员函数的重载、覆盖、隐藏 ”分析设计到一些本质的东西,可能因为博士处一个比较高的位置,对一些问题看来是理所当然,所以其解释可能过于简单,对初学者可能不是十分好理解。 下面,我就这三个规则提出一些个人的看法,理解。这个三规则的顺序我认为应该改为“重载、隐藏、覆盖”来讲,可能思路会清晰一些。 重载的特征: 1、处在相同的空间中,即相同的
2015-09-02 00:28:30
356
转载 C++多态的实现及原理详细解析
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表
2015-09-02 00:16:20
416
转载 C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没
2015-09-01 22:12:02
309
转载 static的作用详解
1、什么是static?1) static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2) static 被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间(静态存储区生存周期长)。3) static 它会把变量的可见范围限制在编译单元中,使它成为一个内部连接,它的反义词为:extern。4) 在类中,静态成员可以实现多个对象之间的数据共享,并且使用静
2015-09-01 22:10:28
510
转载 Openssl编程初探
一、安全通信系统--OpenSSL的安装编译、证书生成1.下载编译并且安装配置从OpenSSLd的官网上(www.openssl.org)下载最新版本或者稳定版本的OpenSSL(本次实验的版本是openssl-1.0.1c),然后解压压缩包。加压之后,由于环境是windows平台的,打开根目录下的windows安装帮助文件(INSTALL.W32),根据文件描述编
2015-08-25 15:57:01
500
转载 解决子窗口(视图)截获父窗口消息的2个办法(MFC)
这样的需求: 1.如果想在CView里面截获发给子框架Frame的消息怎么办? 2.假如子窗口拆分视图了, 那还得细分, 是所有视图都想截获消息,还是某个特定的视图想截获某个特定的消息.对于需求1: 办法1.是重载子框架Frame的WindowProc(UINT message, WPARAM wParam, LPARAM lParam)函数,将自定义的消息(大于WM_USER)转发给自己的视
2015-08-25 15:48:46
2679
转载 PE文件结构详解
1.M_DOS头部结构体:IMAGE_DOS_HEADER STRUCT { +00h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +02h WORD e_cblp // Bytes on last page of file +04h WORD e_cp // Pages in file +0
2015-08-23 19:36:38
2929
转载 揭开常见病毒免杀手法的面纱(浅论杀或者不杀.第二篇)
你杀或者不杀我,我就在那里不悲不喜……借用黑客防线的名言:“在攻与防的对立统一中寻求突破!”小甲鱼从现在开始就厚着脸皮跟大家来谈谈杀毒软件查杀病毒、木马的原理以及病毒、木马如何做出应对和反击的措施。第二篇 揭开常见病毒免杀手法的面纱。由前一篇我们知道,杀毒软件虽然技术日益更新,但主流的查杀方案还是通过特征码的方式来查杀病毒木马的:当一个新的病毒木马或可疑程序一旦出现
2015-08-21 20:43:06
2371
转载 杀毒软件的查杀病毒的原理以及木马、病毒的免杀伎俩(论杀或者不杀 )
杀毒软件的查杀病毒的原理以及木马、病毒的免杀伎俩(论杀或者不杀 )无意中在网上看到的,描述通俗易懂,基本全是基础知识,权当了解吧。====================================================================================================你杀或者不杀我,我
2015-08-21 20:41:29
5679
转载 MFC如何使控件大小随着对话框大小自动调整
对话框的大小变化后,假若对话框上的控件大小不变化,看起来会比较难看。下面就介绍怎么让对话框上的控件随着对话框的大小的变化自动调整。首先明确的是Windows有一个WM_SIZE消息响应函数,这个函数在对话框大小发生变化的时候调用,所以我们可以记录下原来对话框的大小,还有当前对话框的大小(这个不用自己算,系统已给出),然后根据控件做出相应比例的调整。比如原来对话框大小为a
2015-08-13 15:22:47
589
原创 简单分析一下socket中的bind
在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于
2015-08-05 18:28:42
376
转载 CreatDC()和CreateIC()
CreateIC()和CreateDC()都获取设备描述表句柄,但用CreateDC()获取的能够进行绘画,而用CreateIC()获取的设备描述表,你却不能用它往设备上写东西,只能查询获取你所要的信息。测试代码如下: #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI
2015-08-04 23:54:42
1237
转载 MFC Socket简单服务器与客户端源码
服务器端代码:#include "stdafx.h"#include "MTServer.h"SOCKET server;using namespace std;UINT MTServerThread(LPVOID pParam);UINT ClientThread(LPVOID pParam);BOOL ParseC
2015-08-04 18:19:32
1888
2
转载 Socket与WSASocket的区别
socket() 创建一个通讯端点并返回一个套接口。但是在socket库中例程在应用于阻塞套接口时会阻塞。 WSASocket()的发送操作和接收操作都可以被重叠使用。接收函数可以被多次调用,发出接 收缓冲区,准备接收到来的数据。发送函数也可以被多次调用,组成一个发送缓冲区队列。 可是socket()却只能发过之后等待回消息才可做下一步操作! He
2015-08-03 18:05:08
768
原创 VS2010项目中添加lib库
应用程序使用外部库时需要进行加载。VS2010 C++项目设置外部库的方法如下: 1、 添加编译器所需要(依赖)的lib文件 在“项目—》属性—》配置属性—》连接器—》输入—》附加依赖项”里填写所需要的lib文件,多个lib以空格隔开,等同于“#pragma comment(lib, “xxx.lib”)”语句。 2、 添加库(libs)文件目录 在“项目—》属性—》配置属性—》连接器—》
2015-08-03 17:42:49
776
转载 VS2010中编译openssl的步骤和使用设置
VS2010中编译openssl的步骤和使用设置 2013-11-04 14:15:36| 分类: openssl|举报|字号 订阅 下载LOFTER客户端一.VS2010中编译openssl的步骤版本号:openssl-1.0.1e
2015-07-28 11:48:39
3588
转载 头文件互相包含与error C2146: 语法错误 : 缺少“;”的问题
采集图像卡遇到SDK的头文件error C2146: 语法错误 : 缺少“;”的问题,百度了下原来是头文件包含的问题,几个参考的体贴子。如下:原帖地址:http://hi.baidu.com/shilyx/item/6f1f88052982a88a03ce1b36C++中头文件相互包含的几点问题一、类嵌套的疑问C++头文件重复包含实在是一个令人头痛的问题,前一段时间
2015-07-22 17:22:41
684
转载 typedef和#define的用法与区别
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;type
2015-07-21 18:41:43
479
空空如也
openssl编译出错,真心快崩溃了。。。求解答
2015-09-11
关于c++的中函数指针作为参数的问题
2015-09-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅