随笔分类 - C/C++
摘要:虚继承: http://zh.wikipedia.org/wiki/%E8%99%9A%E7%BB%A7%E6%89%BF 解决了菱形继承问题 cB cC 继承cA cD继承cB,cC cD会有两个cA 函数出现二义性。cB,cC虚继承cA后 cD的继承结构里只有一个cA. 虚函数 -->解决父类调
阅读全文
摘要:源:http://bbs.csdn.net/topics/300040713 C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。<cname>形式 的标准头文件【<complex>例外】其内容与ISO标准C包含的name.h头文件相同,
阅读全文
摘要:常量函数(函数后加const) const对象只能调用const成员函数。const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误在const函数中调用非const成员函数是语法错误 —————————————————————————————————————— 任
阅读全文
摘要:c++的类按值方式传递会再次创建一个类,并用传来的类的初始化参数进行初始化 上面的代码 _tmain 的FEF 与 mam的 FEF 是两个不同的地址。 在c里如果struct以值的方式传递,会将当前struct的每项值赋值于新struct,C++里算是多了一步 初始化赋值。 加了 与符号后(C++
阅读全文
摘要:typedef void (PM::*E)(int c); typedef void (*EE)(); //typedef void *EE() = typedef void* EE(); 所以要加() void a(){ printf("%d\n",10); } void pm(EE a){//EE类型函数是全局函数 所以可以直接使用 a(); } void pmm(E...
阅读全文
摘要:静态链接库:*.lib 在程序编译时要使用的代码,会嵌入到最后生成的执行程序里。 动态链接库:*.dll 在程序运行时要使用的代码。 可在运行时载入 或 在编译时链接 引入库(*.lib)文件 进行使用. 动态链接库的类 方法 如果需要让外部使用 需要对类、方法进行标识: __declspec(dl
阅读全文
摘要:在c++里回调函数分2种: 全局函数:不包函在类的内部 或 类内部的静态函数 类内部函数(或叫 局部函数):需要通过实例化后的对象调用的 因c++是c的一层封装,所以类似c里struct内的函数 在传递回调函数时只要保证 函数结构一致就可通过编译检查: 全局函数这样用就可以,但局部函数是不能这样用的
阅读全文
摘要:C: void war(int m,...){ printf("%d\n",m); printf("%d\n",*(&m+1)); printf("%d\n",*(&m+2));}//就像数组一样取。原理麻 就是m的地址+1,当然,由于数组的数量未知,很容易多取,所以在传的时候未尾加NULL Cpp
阅读全文
摘要:正常定义一个数据结构都是这样用typedef struct{ int a; int b;}M;在使用时 M a;其实 struct是这样的struct M{ int a; int b;};在使用时 struct M a;不过为了方便,用typedef的很多。
阅读全文
摘要:typedef int m(int a,int b);这样就定义了一个 m 类型m类型的含义有:一个函数,函数的参数有int a,int b这样在有需要接这种结构的函数时,就可以这样写:void test(m mFun){ mFun(1,2);}int ha(int a,int b){ return 3; }void main(){ test((m)ha);//ha的结构与m一样}
阅读全文
摘要:malloc(sizeof(int));//申请 int 大小的内存typedef struct{ int a; int b;}MA;当想用这个MA的时候,可以void test1(){ MA m; m.a = 3; m.b = 4;}还可以这样void test2(){ MA *m = (MA*)malloc(sizeof(MA)); m->a = 3; m->b = 4;}这两个的不同是test1的m在编译阶段就会计算好内存,这个内存的大小是固定,这样在第二次使用test1的方法时变量m的地址,内存,还是那个第一次变量m的地址,内存。test2在第二次使用时会新分配一块内存出来
阅读全文
摘要:int a=1;int *c;c=&a; 给变量a赋值 1 新建一个指针变量c 把变量a的指针赋值给变量c int *p; 定义个变量,定义变量p类型为 int* int* 类型: 指向int的指针 int **p; 定义个变量,定义变量p类型为 int** int**类型:指向int的指针的指针
阅读全文
摘要:new 相当于 malloc ,delete 相当于 free ,用法一样 c++ 有 namespace,可以避免类名污染 namespace xx{} c++ 有类 这个与 c#、as3比较很好理解 定义在头文件里的 外部要用a就要引用这个头文件#ifndef classA //正常来讲这具a的
阅读全文
摘要:数组在c的表现是一些连续地址的指针 int a[3] 这个a 是数组类型,但a也是个指针,是a[0]的指针,根据“一些连续地址的指针"规则 a[1] 自然是 a+1:指针地址的值+1 这就是数组,至于多维数组,他的指针仍然是连续的,只是可以[0][1]这样取而体现了不同。 那么这个a到底是什么呢 还
阅读全文
摘要:int c=3; while(c<8){ c+=1; if(c==5){ continue; } printf("\n%d",c); }输出:2 3 4 6 7
阅读全文
摘要:数组 (Array) 在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。栈 (Stack) 是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。队列 (Queue) 一种特殊的线性表,它只允许在表的前端...
阅读全文
摘要:相关函数:scanf, snprintf头文件:#include <stdio.h>定义函数:int printf(const char * format, ...);函数说明:printf()会根据参数format 字符串来转换并格式化数据, 然后将结果写出到标准输出设备, 直到出现字符串结束('\0')为止。参数format 字符串可包含下列三种字符类型:1. 一般文本, 伴随直接输出.2. ASCII 控制字符, 如\t、\n 等.3. 格式转换字符.格式转换为一个百分比符号(%)及其后的格式字符所组成. 一般而言, 每个%符号在其后都必需有一printf()
阅读全文
摘要:字符串复制 strcpy string copy 字符串复制字符串连接 strcat string catch 字符串1钩着字符串2字符串比较 strcmp string compare 字符串比较大小字符串分解 strtok string token 按标志将字符串分解字符串搜索 strstr s
阅读全文
摘要:#include:包含一个源代码文件#define:定义宏#undef:取消已定义的宏#if:如果给定条件为真,则编译下面代码#ifdef:如果宏已经定义,则编译下面代码#ifndef:如果宏没有定义,则编译下面代码#elif:如果前面的#if给定条件不为真,当前条件为真,则编译下面代码#endif:结束一个#if……#else条件编译块#error:停止编译并显示错误信息#define DD(s) printf("%s",#s);extern
阅读全文
摘要:typedef int* p typedef void farr,*d; typedef int pm(int a,int *b); typedef void* farr;//无类型指针 可以是任何类型数据的指针。 获取类型存储空间 sizeof(int)
阅读全文

浙公网安备 33010602011771号