易截截图软件、单文件、免安装、纯绿色、仅160KB

纯C实现c++类

//#include "stdafx.h"
/*
描述:纯c模拟类,纯c编写c++类,纯c实现c++类的简单范例,结构模拟类,struct 编写class.
c编写类是实现纯c编写com组件的基础。
*/
#include <stdio.h>
typedef struct _Vtbl
{
    void (*AddRef)(struct CObject* obj,int);//所有的函数的第一个参数类似class的隐匿的this指针
    void (*Release)(struct CObject* obj);
}Vtbl;//函数指针数组
typedef struct CObject
{
    Vtbl vtbl;//函数指针数组指向成员函数
    int a;
    int b;
}Cobj;//结构模拟类的简单定义
void fun1(Cobj *obj,int count)//成员函数
{
    obj->a+=count;
    printf("CObject::a=%d\n",obj->a);
}
void fun2(Cobj *obj)//成员函数
{
    obj->a--;
    printf("CObject::a=%d\n",obj->a);
}
static Vtbl vt={fun1,fun2};//声明一个静态函数指针数组
int main()
{
    Cobj obj;//定义对象
    obj.vtbl=vt;
    obj.a= 10;
    obj.vtbl.AddRef(&obj,1);
    obj.vtbl.Release(&obj);
    return 0;
}


相关文档:

Spring配C3P0连接池(以MySQL数据库配置为例)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:jee="http://www.springframework.org/schema/jee"
      &nbs ......

C/C++基本数据类型

学了C然后C++,然后MFC/Windows,然后是C#,其中数据类型很多,由基本类型衍生的typedef类型也N多。熟知基本数据类型是我们正确表达实际问题中各种数据的前提,因此我分类总结了一下C/C++/Windows /C#基本数据类型,以便日后查阅。
         ANSI C/C++基本数据类型:
Type
Size ......

C与C++的区别

1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。
2. C++/CL ......

不用临时变量交换两个数的值(C实现)

当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换。那么能不能不用临时变量而交换两个数的值呢?可以的!C语言提供的异或运算就可以实现这样的操作。
 
异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, ......

c调用api打开文件对话框

#include <windows.h>
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd )
{
OPENFILENAME ofn;
//在内存中开辟一块空间,存放用户选取的文件名
char szFile[MAX_PATH];//MAX_PATH ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号