首先为了解决命名冲突,c++提出了命名空间这一功能
比如using namespace std;
就是使用std(c++官方库定义的命名空间)这个命名空间里面的命名。
using就可以直接指定本文件用那个命名空间。
也可以用::域作用限定符
如std::cin>>
并且会根据传入的类型选择命名空间内重叠的函数(重载函数)
如果实在无法区分,则会报错。
cin>>和cout<<分别是输入和输出
endl是换行
如cout<<endl;使用
缺省参数
可以规定参数的默认值,如果不传入相应的参数则直接使用默认值。
只支持连续传,不支持跳着传
并且只能在声明的地方给默认值,不能在定义的地方给。防止2个地方给的值不一样,也防止只用了声明的时候,没有默认值。
支持重载函数。
定义
就是返回值不参加判定。
参数顺序不同也是重载函数。
有时候虽然是重载函数,但是使用的时候存在歧义,不能正常使用。
引用
此处的int& c=a;其实就是引用,相当于给a取别名。
b相对于a的拷贝。
再加上重载函数使得交换非常方便。
第二做返回值
但是出了作用域,返回对象已经销毁,所有我们一般不会使用引用返回。
如果要返回,那么必须返回没有被销毁的。(例如malloc或者静态变量,全局变量)
局部的静态变量只会被初始化一次!!!
引用做返回值的好处
1.可以提高效率。
2.可以直接去修改返回对象
权限不能放大,只能平移或者缩小。
甚至可以给常量取别名
此处直接double&不能成功的,但是加const就可以了,是因为很多时候赋值的时候会产生临时变量(会被设置为常量)(例如此处发生了类型转换(类型转换会产生临时变量)),所以用常量才可以接受。
引用和指针在语法上不能混完一谈,但是本质和指针一样。