
C/C++
henry000
这个作者很懒,什么都没留下…
展开
-
系列一
把程序员分成两类:一类是类创建者,一类是客户程序员。Virtual函数 只有申明为virtual的函数才能动态绑定(late binding),缺省情况下函数不具有该特性重载 重载(overriding):改变已经存在的基类函数的行为 函数重载(overload):多个函数具有相同函数名+不同参数对象数据的存储: 第一种是存储在栈中或者静态存储区中(分配简单,速度快) 栈是给自动变量或者局部变量使用,移动指针就能分配与释放空间 静态存储区域:程转载 2010-11-09 23:59:00 · 473 阅读 · 0 评论 -
网络心跳包处理
以前在学习Socket编程时都只是简单的调用微软的API函数,很少考虑网路的异常处理。在做实际的项目中网路异常是必须要考虑到的。 网路断开掉线异常处理: HeartBeat 网络心跳包 一下是个人理解,网络心跳包的处理方式有两种“ 方式一: 终端主动发起, 服务器记录各个终端最后一个包的时间点,然后定时扫描全部客户端,如果扫描时间点与上次收包时间点原创 2012-02-11 15:16:58 · 7620 阅读 · 1 评论 -
Extern 用法
// 某个头文件,比如叫 ExternTest.h 中extern int iExtern; // 这样就是一个变量声明——而不是定义,因为没有分配存储空间 //这以后就可以引用这个变量,而这个变量的存储于下面的 int iE转载 2010-11-24 18:11:00 · 457 阅读 · 0 评论 -
C++中const用法总结
1. const常量,如const int max = 100;优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。2.转载 2011-10-10 10:41:27 · 369 阅读 · 0 评论 -
RC4
#ifndef _ENCRYPT_RC4_#define _ENCRYPT_RC4_#include #include#include#define BOX_LEN 256int GetKey(const PBYTE pass, UINT pa转载 2011-10-10 13:55:01 · 808 阅读 · 0 评论 -
static 用法
对于一个程序,内存分配情况如下: ============================ | 代码区 | -------------------转载 2011-10-10 11:41:28 · 385 阅读 · 0 评论 -
DLL 传递消息EXE
// MyClass.h: interface for the CMyClass class.////////////////////////////////////////////////////////////////////////#if !defined(原创 2011-10-08 16:02:11 · 573 阅读 · 0 评论 -
MFC规则DLL 概述
MFC规则DLL的概念体现在两方面: (1) 它是MFC的 “是MFC的”意味着可以在这种DLL的内部使用MFC; (2) 它是规则的 “是规则的”意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可转载 2011-10-08 15:24:17 · 457 阅读 · 0 评论 -
DLL导出类
DLL导出类 DLL中定义的类可以在应用工程中使用。#ifdef MYDLL_EXPORTS#define MYDLL_API __declspec(dllexport)#else#pragma message("auto to link the Tes原创 2011-10-08 15:21:53 · 617 阅读 · 0 评论 -
DLL导出变量
DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进程的全局/* 文件名:lib.h */#ifndef LIB_H#define LIB_H extern int dllGlobalVar;#endif/* 文件名:lib.cpp */转载 2011-10-08 15:12:47 · 7004 阅读 · 0 评论 -
C++的动态绑定和静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类转载 2011-09-28 15:18:35 · 483 阅读 · 0 评论 -
CString / BSTR
<br />CStrint to BSTR<br /> CString str = "CString to BSTR"BSTR b_str = str.AllocSysString(); // do something ::SysFreeString(b_str);<br />BSTR to CString<br />CString convert(BSTR b){ CString s; if(b == NULL) return s; // empty for原创 2010-11-22 13:46:00 · 1712 阅读 · 1 评论 -
系列三 简单的模板类/模板函数
<br />模板类<br />#ifndef TEMPLATE_CLASS_H#define TEMPLATE_CLASS_H#include <assert.h> namespace study{ template<class elemType> class CTemplate { enum{SIZE = 0}; public: CTemplate(void) { _item = SIZE; } CTemplate(int it原创 2010-11-16 10:21:00 · 576 阅读 · 0 评论 -
系列二
c函数库中所有函数在C++中都能使用函数声明参数列表不能图省事用int x,y,z函数定义c需要参数有名字,c++允许没有名字f()在c中表示不确定的参数,c++中表示不带参数f(void)在c和c++中都表示不带参数c语言要求在块起始处定义将出现的所有变量,c++运行在用到的地方才定义基本数据类型,说明符(Specifier),修饰符可以在基本数据类型基础上扩展新类型:如 unsigned long & int1. 基本内部类型(char, int, long, double),标准并不直接规定每个内部类转载 2010-11-09 23:59:00 · 1800 阅读 · 0 评论 -
STL
STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap三: 其他的杂项: stack, queue, valarray, bitset STL转载 2012-04-08 14:14:41 · 579 阅读 · 0 评论