学习周志(8.21)

本周开始了C++语言的学习,下面是C++基础语法学习内容的一些整理:命名空间、输入输出、带默认值的函数、带占位参数的函数、函数重载、C++引用、new与delete。

1、命名空间:

命名空间用于解决符号名称冲突的方法。

定义:

局部引用eg:MySpace::a   (:: 域操作符,用于访问作用域)

全局引用eg:using namespace MySpace;

全局引用部分变量:using namespace MySpace::a;

命名空间取别名:namespace MySpace2 = MySpace; 

2、C++输入输出

标准输入对象:cin  ,标准输出对象:cout  ,换行操作:endl  ,输出运算符:<<  ,输入运算符:>>  。cin输入类型不匹配会返回空,消除了scanf连续输入多次字符时产生垃圾字符的缺点。设置域宽 :cout.width(5),设置域宽为5。

3、带默认值的函数(即使不传参数也会按默认值参数运行)

规则:1需要添加默认值的参数,直接在参数栏中用等号赋值即可;

           2可以所有 或 部分参数设置为默认值;

           3只有部分参数有默认值时,带默认值的参数必须放在参数栏末尾;

           4默认参数一般在声明时说明,不需要声明、定义两者处都说明。

eg:void addNum(int a, int b = 10, int c = 20)

4、带占位参数的函数(为了函数以后扩展功能)

规则:在函数定义时只写类型,不写变量名,所以无法使用这个参数;调用函数时必须传入这个参数,也可以给它添加默认值。

eg:int sumNum(int a, int b, int = 0)

5、函数重载(提高函数的易用性)

前提条件:同一作用域 

规则:1函数名称必须完全相同。

           2参数列表必须不同(个数、类型、参数顺序)。

           3函数返回值可以相同也可以不同,但仅仅返回值类型不同不足以成为函数重载。

底层原理:编译器会将重载函数设置成不同的函数名,根据参数类型与个数进行匹配。

6、引用(简化指针操作)

引用是给一个变量或者对象取一个别名,对引用操作与对其绑定的变量或对象操作一样(可以理解为是同一个变量或对象)。&号前是一个类型名,则&是引用。主要用于函数传参,也可用于函数返回值,返回的变量必须为静态变量,引用返回的函数可以做左值或右值。

规则:声明引用必须同时初始化,且初始化后不能改变引用空间的位置。引用的类型必须与目标变量或对象的类型一致。不能将已有的引用名作为其他变量或对象的名字或别名。

原理:本质为指针常量int *const p,使用引用时编译器会在底层生成一个指针,并自动*运算。

7、new与delete

new:申请内存并初始化对象。delete:释放内存并销毁对象。

 

new/delete与malloc/free的区别:

1.malloc/free是C/C+ +标准库函数,new/delete是C++操作符。

2.malloc/free需要手动计算类型大小,且返回void*, new/delete可以自己计算类型大小,根据类型返回相应的类型的指针。

3.new/delete的实现是基于malloc/free。

4.malloc/free只负责分配/释放空间,new/delete会调用构造函数与析构函数,用于初始化对象与销毁对象。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值