目录
一.namespace
1. namespace 关键字是解决 命名冲突 或 名字污染 的问题。比如
解决方法 : 使用namespace : 解决 命名冲突 或 名字污染 。
2. namespace 可以嵌套:
3.多个文件中可以定义同名namespace,他们会默认合并到⼀起,就像同⼀个namespace⼀样
4.using:是将命名空间中某个成员展开。展开命名空间中全部成员,项目不推荐,冲突风险很大
日常小练习程序为了方便推荐使用。比如
二.输入与输出
<iostream> 是 Input Output Stream 的缩写,是标准的输⼊、输出流库,定义了标准的输⼊、输
出对象。
std::cin 是 istream 类的对象,它主要⾯向窄字符的标准输⼊流。(类似scanf)
std::cout 是 ostream类的对象,它主要⾯向窄字符的标准输出流。(类似printf)
std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换行字符加刷新缓冲区。(类似 ‘ \n ’)
cout/cin/endl等都属于C++标准库,C++标准库都放在⼀个叫std(standard)的命名空间中,所以要
通过命名空间的使⽤⽅式去用他们。
这里没有包含<stdio.h>,也可以使⽤printf和scanf,在包含<iostream>间接包含了。
(vs系列编译器是这样的,其他编译器可能会报错。)
三.缺省参数
1.C++规定半缺省参数必须从 右往左 依次连续 给 缺省值 ,不能间隔跳跃给缺省值。
四.函数重载
三种重载情况:
1. 参数类型不同
2、参数个数不同
3、参数类型顺序不同
函数重载的错误情况:
1. 返回值不同不能作为重载条件,因为调用时也无法区分
2.特别的:
五.引用
1.引用的特性
(1)引用在定义时必须初始化
(2)⼀个变量 可以 有多个引用
(3)引用⼀旦引用⼀个实体,再不能引用其他实体
2.引用的使用
3.const引用
1.const引用也可以引用普通对象,因为对象的访问权限在引用过程中可以缩小,但是不能放大。
int& 无法给临时变量起 别名
注: (需要⼀个空间暂存表达式的求值结果时临时创建的⼀个未命名的对象,C++中把这个未命名对象叫做临时对象)
const int& 可以
4.指针和引用的关系
1.语法概念上引用是⼀个变量的取别名不开空间,指针是存储⼀个变量地址,要开空间。
2.引用在定义时必须初始化,指针建议初始化,但是语法上不是必须的。
3.引用可以直接访问指向对象,指针需要解引用才是访问指向对象
4.sizeof中含义不同,引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节,64位下是8byte)
5.指针很容易出现空指针和野指针的问题,引用很少出现,引用使用起来相对更安全⼀些
六. inline(类似c语言的宏)
注意:inline适用于频繁调用的短小函数。
(对于递归函数,或者代码相对多⼀些的函数,加上inline 也会被认为是正常函数)
想一想,回顾c语言: