狄泰C++课程学习笔记:第十课:C++中的新成员

1、用于动态内存空间申请和释放的new/delete关键字的引入

对应于C中用于动态内存申请和释放的库函数malloc/free来说,C++中引入了全新的概念,直接以源生关键字的方式支持了动态内存的申请和释放,相较于C中的申请和释放,二者特点特性对比如下:

    * C:动态内存的申请是以字节为单位进行的   如:int* p = malloc(sizeof(int));

      C++:动态内存的申请是以类型为单位来进行分配的    如:int* p = new int;

    * C:malloc只支持内存空间的申请,而无法对申请到的内存空间进行第一时间的初始化操作

      C++:以单一类型进行动态内存的申请时,支持直接的初始化操作,如:int* p = new int(1);

           但在这里要区分这种形式的申请:int* p = new int[1];

        前者表示:动态申请一块大小为int的内存空间并初始化为1;后者则表示动态申请一块数组空间,数据元素个数为1,即这里并没有进行任何的初始化操作

    * C:动态内存的释放,无论是单一类型的内存,还是数组形式的内存,释放形式均为 free(p);

       C++:单一类型则使用delete p;即可,但特别的对于数组的释放,则要额外加上一组中括号,如delete[] p;否者我们只是释放了该数组的首元素所占用的空间,这样就会在一定程度上造成内存泄漏。

    * 。。。。更多异同将在后续课程中深入完善补充

小例如下:


2、namespace 关键字的引入,“命名空间”的概念的引入

意义:主要是多人合作开发时,为了解决我们无意间定义的标识符名称命名冲突的问题,相较于C中的唯一的全局作用域,我们可以人为的根据需要将作用域划分为无数个命名空间,这样我们就允许在不同的命名空间中定义相同的标识符,而不必担心变量名的重名问题,在使用的时候显式的指定该变量名所在的命名空间即可。

简单测试用例:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值