1.命名空间
使用命名空间可以防止重名
命名空间可以嵌套
使用AA::a调用命名空间里面的变量
使用using namespace AA;可以把命名空间的内容展开到全局域,直接调用
2.C++基本输入输出流
cout,cin,endl都是对象,在std域里
cout是标准输出流对象,cin是标准输入流对象
cout和cin可以不写变量的类型
3.C++支持重载
C++中,同一作用域,同名函数,参数不同,可以构成重载
因为C++中有函数名修饰,修饰以后的新函数名不同
但是返回值不同,参数相同不能重载,因为函数名修饰和返回值没关系
4.C++缺省参数
全缺省:int add (int a = 10, int b = 20)
传参的时候,可以省略后半部分,省略的参数用缺省参数
如:cout<<add(20); 计算的是20+20
半缺省:int add(int a, int b =20)
后面的必须缺省,前面的可以不用缺省
缺省要从右向左,要连续。这样不行:int add(int a =10 , int b)
5.指针和引用
引用的特点:
1)引用不是定义新变量,是已经存在的变量的别名,一个变量可以有多个别名
2)引用一次不能改变,b是a的别名,b不能改成c的别名
3)引用必须初始化
引用的作用:
1)传参:
传值:效率最低。把实参全部复制一遍
传址:效率高。复制实参的地址,4字节
传引用:效率最高。什么都不复制,传别名
2)作返回值:出了作用域还存在,才能返回引用,提升效率
注意:给临时变量起别名时候要加const,临时变量有常性。隐式类型转换和函数传值返回时,都有临时变量
隐式类型转换
float f =33.33;
const int& h = f;
函数返回
const int &c = add(a,b);
使用命名空间可以防止重名
命名空间可以嵌套
使用AA::a调用命名空间里面的变量
使用using namespace AA;可以把命名空间的内容展开到全局域,直接调用
2.C++基本输入输出流
cout,cin,endl都是对象,在std域里
cout是标准输出流对象,cin是标准输入流对象
cout和cin可以不写变量的类型
3.C++支持重载
C++中,同一作用域,同名函数,参数不同,可以构成重载
因为C++中有函数名修饰,修饰以后的新函数名不同
但是返回值不同,参数相同不能重载,因为函数名修饰和返回值没关系
4.C++缺省参数
全缺省:int add (int a = 10, int b = 20)
传参的时候,可以省略后半部分,省略的参数用缺省参数
如:cout<<add(20); 计算的是20+20
半缺省:int add(int a, int b =20)
后面的必须缺省,前面的可以不用缺省
缺省要从右向左,要连续。这样不行:int add(int a =10 , int b)
5.指针和引用
引用的特点:
1)引用不是定义新变量,是已经存在的变量的别名,一个变量可以有多个别名
2)引用一次不能改变,b是a的别名,b不能改成c的别名
3)引用必须初始化
引用的作用:
1)传参:
传值:效率最低。把实参全部复制一遍
传址:效率高。复制实参的地址,4字节
传引用:效率最高。什么都不复制,传别名
2)作返回值:出了作用域还存在,才能返回引用,提升效率
注意:给临时变量起别名时候要加const,临时变量有常性。隐式类型转换和函数传值返回时,都有临时变量
隐式类型转换
float f =33.33;
const int& h = f;
函数返回
const int &c = add(a,b);