C++初期知识点体会小结(其一)

1.命名空间namespace

1)作用:防止类似在C语言中出现相同函数名冲突的情况。在以后的学习中,如函数、类、变量的名称都将在全局作用域中大量出现,为避免导致冲突所以就会用namespace来将这些标识符的名称本地化。

2)性质:namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量。

C++中域有函数局部域,全局域,命名空间域,类域;局部域和全局域除了会影响编译查找逻辑,还会影响变量的声明周期,命名空间域和类域不影响变量声明周期。域之间存在隔离。

namespace只能定义在全局,当然他还可以嵌套定义。

项目工程中多文件中定义的同名namespace会认为是⼀个namespace,不会冲突。

C++标准库都放在⼀个叫std(standard)的命名空间中。

3)使用:在项目中,一般推荐指定命名空间访问;在日常小练习中,为了方便可以将命名空间全部展开使用;用using将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式。

2.cout<<与cin>>

前者可以理解为高级的printf(会自动识别变量类型)。

后者可以理解为scanf。

3.缺省参数

缺省参数(默认参数)是声明或定义函数时为函数的参数指定⼀个缺省值。

全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。

带缺省参数的函数调用,C++规定必须从左到右依次给实参,不能跳跃给实参。

函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省值。

4.函数重载

一般来讲,执行相同逻辑运算的函数出现参数类型,个数,顺序不同时可以构成函数重载。

函数的重复声明:这个概念极易与重载混淆。若函数仅出现返回值不同,或者缺省参数不同,则视为重复声明。

5.引用

1)特性(这里与指针比较记忆)

·引用必须初始化,指针不必(但为防止野指针,还是要初始化)

·引用在初始化后便不能再引用另一个实体了,但指针可以在任意时候指向同类型实体

·无多级引用,有多级指针

·引用体现了最小特权原则,即给予程序元素完成其功能的最小权限, 指针能够毫无约束的操作内存中的任何东西,尽管功能强大,但是非常危险

2)const引用

可以引用一个const对象,但是必须用const引用。const引用也可以引用普通对象,因为对象的访 问权限在引用过程中可以缩小,但是不能放大。

C++规定临时对象具有常性。

如       int a = 10;

则有   const int& rb = a*3;

此刻,a*3视为常量,需要用const修饰

6.inline

用inline修饰的函数叫做内联函数,编译时C++编译器会在调用的地方展开内联函数,这样调用内联 函数就需要建立栈帧了,就可以提高效率。(用空间换时间)

适用:短小且频繁调用的函数

不适用:递归或代码较多函数

设计目的:替代宏(宏的使用复杂且易错,还不方便调试)

inline不建议声明和定义分离到两个⽂件,分离会导致链接错误。因为inline被展开,就没有函数地 址,链接时会出现报错。

7.nullptr

相当于C语言中的NULL

而真正的NULL在这里代表0

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值