- 博客(8)
- 资源 (6)
- 收藏
- 关注
原创 移动构造-C++11
移动构造:移动构造是C++11标准中提供的一种新的构造方法。在现实中有很多这样的例子,我们将钱从一个账号转移到另一个账号,将手机SIM卡转移到另一台手机,将文件从一个位置剪切到另一个位置…… 移动构造可以减少不必要的复制,带来性能上的提升。有些复制构造是必要的,我们确实需要另外一个副本;而有些复制构造是不必要的,我们可能只是希望这个对象换个地方,移动一下而已。在C++11
2015-09-28 12:16:24 20422 9
原创 深层复制与浅层复制
复制对象时需要复制构造函数默认的复制构造函数实现的是对象的数据成员之间一一对应的这种复制,这种复制被称为浅层复制。浅层复制:实现对象间数据元素的一一对应复制。
2015-09-27 11:10:31 2523
原创 VECTOR对象
vector是C++标准模版库的一个类模版,它的作用是什么呢?为什么我们要使用vector呢?vector其实就像一个数组一样好用,但是它比我们自己定义的数组更加好用,使用起来更加安全,更加方便。vector对象名不能当做数组的头指针使用。vector对象为什么需要vector?封装任何类型的动态数组,自动创建和删除。数组下标越界检查在程序例题申请和释放动态数组
2015-09-22 16:55:27 818
原创 智能指针
显示的用new动态内存分配,用delete释放;这种显示的内存管理有一定的安全隐患,比如说我们忘记了释放,就会造成内存泄漏。在C++11中提供了一种叫做智能指针的指针,它对内存回收技术(对垃圾回收技术)提供了一定的支持,使得我们的程序在内存管理上更加安全一些。C++11提供智能指针的数据类型,对垃圾回收技术提供了一些支持,实现一定程度的内存管理C++11提供的智能指针,
2015-09-21 16:24:08 362
原创 指针类型的函数
若函数的返回值是指针,该函数就是指针类型的函数指针函数的定义形式:存储类型 数据类型 *函数名(){ //函数体语句}注意:· 不要将非静态局部地址用作函数的返回值1、错误的例子:在子函数中定义局部变量后将其地址返回给主函数,就是非法地址· 返回的指针要确保在主调函数中是有效、合法的地址1、正确的例子:主函数中定义的数组,在子函
2015-09-16 15:52:11 845
原创 以指针作为函数参数
什么时候需要用指针做参数1、需要数据双向传递时(引用也可以达到此效果)2、需要传递一组数据,只传首地址运行效率比较高 实参是数组名时形参可以是指针用指针作为函数的参数,可以使被调函数通过形参指针存取主调函数中实参指针指向的数据,实现数据的双向传递。
2015-09-16 09:30:57 771
原创 指针数组
指针数组:数组的元素是指针类型例: Point *pa[2];由pa[0]、pa[1]两个指针组成二维数组就是相当于由一维数组组成的二维数组,且构成二维数组的一维数组之间是依次连续存放的例: //三行三列矩阵 int line1[] = {1,0,0}; int line2[] = {0,1,0}; i
2015-09-15 15:01:50 409
原创 用指针访问数组元素
数组是一组连续存储的同类型数组,可以通过指针的算术运算,使指针一次指向数组的各个元素,进而可以遍历数组。定义指向数组元素的指针: ·定义与赋值: 例:int a[10],*pa; pa = &a[0];或 pa = a; 等效的形式: 1、经过上述定义及赋值后: *pa
2015-09-15 12:40:17 1207
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人