C/C++
文章平均质量分 53
就叫我海
本人纯属乱说..如有雷同,纯属巧合...
展开
-
C对内存的使用
1、 文本段:包含程序的指令,它在程序的执行过程中一般不会改变。2、 数据段:包含了经过初始化的全局变量和静态变量,以及他们的值。3、 BSS段:包含未经初始化的全局变量和静态变量。4、 栈段:包含了函数内部声明的局部变量。5、 堆段:动态分配一个小例子:#include #include #include int ga;//BSS段,全局变量static原创 2013-01-05 21:09:02 · 552 阅读 · 0 评论 -
__stdcall 与 __cdecl
_stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除(也就是自己清除),函数在编译的时候就必须清楚参数个数。_cdecl 是CDeclaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除。被调用者(也就原创 2013-01-06 12:39:43 · 479 阅读 · 0 评论 -
类成员函数指针
class Base{public: Base():f_(0){} virtual ~Base(){}public: typedef void (Base::*FUNC)(); void setf(FUNC f) { f_ = f; } FUNC getf() { return f_; }public: FUNC f_;};class Derived:p原创 2013-01-06 15:06:10 · 404 阅读 · 0 评论 -
virtual析构函数的作用
#include class Base{public: Base(){ cout<<"Base Constructor"<<endl; } ~Base(){ cout<<"Base Destructor"<<endl; }public: virtual void DoSomething(){ cout<<"Base DoSomething"<<endl; }};原创 2013-01-06 15:55:25 · 557 阅读 · 0 评论 -
C++中的虚函数
虚函数的实现简单的讲,当定义一个虚函数后,类里面会有一个__vptr指针,指向vtbl(虚函数表),虚函数表里面存放了其对应的虚函数的地址所有当没有其它数据成员时,用sizeof取其大小,其大小为4class A{public: virtual void Fun(){ printf("A::Fun()\n"); }; virtual void Fun2()原创 2013-01-06 14:11:18 · 445 阅读 · 0 评论 -
KMP算法
串的模式匹配算法一.BF算法1.BF算法基本思想是:从主串S的第1个字符起和模式串T的第一个字符比较,若相等,刚继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式串的字符比较.依次比较下去,直到最后结果举例说明S:a b a b c a b c a c b a bT:a b c a cBF算法的匹配的步骤如下第一趟:原创 2013-11-18 23:48:48 · 944 阅读 · 0 评论 -
快速排序
快速排序快速排序是对冒泡排序的一种优化,通过一趟排序将待排序的部份分成两部份,一部份比另外一部份大,则可以对这两部份分别排序.通俗的讲,先从数列中选取一个数作为基准数,然后再以这个基准数作为分区点,将比这个基准数的大的数放在左右或左边,再对以分好的两个区再分区,直到每个区间里面只有一个数,很明显整个快速排序过程可以递归进行.具体做法是:设两个指针i,j,它们的初值是i=0,j=strl原创 2013-11-19 22:23:56 · 699 阅读 · 0 评论 -
XCode写C++类注意
在类A中用到了类B,如果都是hpp文件,建议全部写在hpp文件中,另外写法上,在类的声明中,直接写完实现,可以反复包含,如果先写声明,然后再写实现,反复包含后会编译错误原创 2017-05-25 13:06:45 · 2474 阅读 · 0 评论