自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 重载、覆盖、隐藏

重载:程序根据不同的参数列表(参数的类型、个数、顺序)来确定具体调用哪个函数。对于重载函数的调用,在编译期间就已经确定,是静态的,它们的地址在编译期间就绑定了,与多态无关。成员函数被重载的特征:1)相同的范围(在同一类中)。2)函数名字相同。3)参数不同。4)virtual 关键字可有可无。重载不关心函数的返回值类型。覆盖:派生类中存在重新定义的基类的函

2016-08-31 21:58:08 179

原创 函数指针 指针函数 模板类 类模板 函数模板 模板函数

指针函数:本质是一个函数,函数的返回值是某一类型的指针。形式一般如下: 类型标识符  *  函数名(参数列表) 如 int * f(x,y).函数指针:本质上是指针,它指向的是一个函数。形式一般如下:类型标识符 (*函数名)(参数) 如 int (*pf)(int x)。数组指针: int (*p)[ 4 ].指针数组: int * p [ 4 ] .函数模板:对一批模样相同的函数

2016-08-31 15:02:20 860

原创 #define和const struct 与 union的区别

1)#define 不仅可以替代常数值,也可以替代表达式值,甚至是代码段,只是在预处理阶段进行简单的文本替换,不分配内存空间,存在于程序的代码段,在实际应用中只是一个常数,并没有实际的存在。const 常量存在于程序的数据段,并在堆栈中分配了内存空间,const常量在程序中确确实实地存在,并且可以被调用、传递。2)const 常量有数据类型,保护程序中的常量不被修改,编译器对const常量进行

2016-08-31 10:57:53 5890

原创 宏定义、内联函数、普通函数的区别

宏定义和内联函数的区别:第一:宏定义时在预处理阶段进行代码替换,而内联函数在编译阶段进行代码替换。第二:宏定义没有类型检查,而内联函数有类型检查。内联函数和普通函数最大的区别是在内部实现方面上:普通函数在被调用时,系统首先要跳跃到该函数的入口地址,执行函数体,执行完成后,再返回到函数调用的地方,函数始终只有一个复制;而内联函数则不需要一个寻址过程,当执行到内联函数时,内联函

2016-08-31 10:01:51 898

原创 宏、枚举、typedef

预处理也称为预编译,为编译做预备工作,主要进行代码文本的替换工作,用于处理#开头的指令,其中预处理器产生编译器的输出。同一个处理阶段所进行的工作只是纯粹地替换与展开,没有任何计算功能。C/C++头文件的ifndef/define/endif的作用:如果一个项目中存在两个C文件,而这两个C文件都include了同一个头文件,当编译时,这两个C文件要一同编译成一个可运行文件,可能会产生大量

2016-08-30 18:22:34 257

原创 指针传递 引用传递 值传递

用指针变量可以表示各种数据结构,能很方便地使用数组,字符串和链表。并不是直接操作数据,而且它可以直接和内存打交道,使用稍有不慎,就会造成程序崩溃。使用指针的好处:1) 在数据传输时,如果数据块较大,这时就可以使用指针传递地址而不是实际数据。提高传输速度,又节省大量内存。2)在数据结构中,链表、树、图等大量的应用都指针。3)可以动态分配内存。1)引用是某块内存的别名,指针

2016-08-30 14:16:53 341

原创 内存泄漏和缓冲区溢出

所谓内存泄漏(memory leak)一般是指堆内存的泄露,它是由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,造成内存保持占用状态,使操作系统不能将内存分配给其他的程序(进程)。并非指内存在物理上的消失,而是程序分配某段内存之后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内

2016-08-30 09:05:52 1098

原创 内存分配的形式

一个C/C++编译的程序所占用的系统内存一般分为以下几个部分的内容:1) 由符号起始的区块(Block Started by Symbol, BSS)段:BSS段属于静态内存分配,通常是指用来存放程序未初始化的全局数据和静态数据的一块内存区域。程序结束后由系统自动释放。2)数据段(data segment)全局变量的:数据段属于静态内存分配。通常是指用来存放程序中已初始化的全局变量

2016-08-29 09:23:09 360

原创 回调函数

回调指针就是一个通过函数指针调用的函数。使用者自己定义了一个函数,使用者自己实现这个函数的程序内容,然后把这个函数作为参数传入别人或系统的函数中,由别人或系统的函数在运行时来调用的函数。函数时你自己实现的,但有别人的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数在运行期间来回调你实现的函数。如果你把函数的地址作为一个参数传递个另一个函数

2016-08-29 08:27:50 281

原创 什么时候需要将引用作为返回值

将引用作为函数返回值类型的格式如下所示:类型标识符 & 函数名(形参列表及类型说明){// 函数体}将引用作为返回值的优点是:在内存中不产生被返回值的副本,从而大大提高了程序的安全性和效率。具体而言,将引用作为函数函数返回值类型的格式一般要注意一下4点内容:1) 当返回一个引用时,要注意被引用的对象不能超出作用域。所以不能返回局部变量的引用。但是可以返回一个静态变量的引用。

2016-08-28 19:38:44 917

原创 new/delete 与 malloc/free的区别是什么?

在C++中,申请动态内存和释放动态内存,用new/delete 和 malloc/free都可以,new和malloc动态申请的内存都位于堆中,无法被操作系统回收,需要对应的delete/delete来释放空间。malloc/free 是C/C++ 语言的标准库函数,在C语言中需要头文件的支持。new/delete是C++的运算符。对于类的对象而言,malloc/free无法满足动态对象的

2016-08-27 10:24:54 1488

原创 断言ASSERT()是什么?

ASSERT()一般被称为断言,它是一个调试程序经常使用的宏,定义在头文件中,通常用于程序中是否出现非法的数据,程序运行时计算括号内的表达式的值。如果表达式的值为false,程序报告错误,终止运行,以免导致严重的后果,同时也便于查找错误。如果表达式的值不为0,则继续执行后面的语句。Assert()捕获的是非法的情况,而非错误的情况,错误情况时必然存在的,并且一定要做相应的处理,而非法情

2016-08-27 09:26:55 1133

原创 volatile在程序设计中的作用

volatile 是一个类型修饰符,用来修饰被不同线程访问和修改的变量。被volatile类型定义的变量,系统每次用到的时候都是直接从对应的内存中读取,而不会利用cache中原有数值,以适应它的未知何时会发生的变化,系统对这种变量的处理不会做优化。所以,volatile 一般用于多线程间被多个任务共享的变量和并行设备硬件寄存器等。

2016-08-27 09:09:34 389

原创 const引用

const关键字常见的几个作用:1) 保护被修饰的东西,防止被意外的修改,增强程序的健壮性。2)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值。3)为函数重载提供参考。4)对于类的成员函数,若指定其为const类型,表明是一个常函数,不能修改类的成员变量。const在类中1)const 对象只能调用const函数,非c

2016-08-26 11:02:00 418

原创 static的作用

static 全局变量的作用: 只被初始化一次,全局静态变量在声明它的文件之外是不可见的。其他文件中可以使用相同的名字的变量,不会发生冲突。改变了文件作用域,但是没有改变它的存储位置。static 局部变量的作用: 改变了存储位置,从原来的栈中存放改为静态存储区。局部静态变量在离开作用域之后,并没有被销毁,而是仍然保存在内存中,知道程序结束,只不过我们不能再对它进行访问。 st

2016-08-26 10:06:43 207

原创 进程与线程的区别

进程是系统进行资源分配和调度的一个基本单位。线程是进程的一个实体,是CPU调度和分配的基本单位,是进程更小的能独立运行的基本单位。一个线程必定属于也只能属于一个进程,一个进程里面至少包含有一个线程。线程基本上不拥有系统资源,只拥有一点必不可少的资源,它与属同一个进程中的所有线程共享该进程中的所有资源。进程有独立的地址空间,一个进程崩溃后,不会对其他进程产生影响。

2016-08-24 20:10:28 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除