C++基础

1.关于namespace用法及其应用:

    由于在C++一些标准库中,存在命名冲突等问题,使得我们在自己使用变量时,遇到报错。但是我们又想使用我们自己的变量名,这时候就可以使用namesapce去限定一个使用的域,那么当我们再次使用变量时,可以对该变量进行限定。例如:

namespace obj{
    int rand=1;
}
int main()
{
    obj::rand+=1;//限定在obj的域内
    rand+=1//此时会查询全局变量 锁定到内置库的rand 报错
    return 0;
}

使用using 关键词可以将命名空间展开,常用于using namespace std 将标准库中的成员展开。

2.C++的输入\输出:

1)在<iostream>库中定义了输入\输出对象

2)cin为istream对象,cout为ostream的对象,二者为面向窄字符的标准输入输出流

3)我们可以把流想象成一种数据缓存,那么<<表示讲流中内容插入到console,可显示到屏幕上;>>表示流提取,可将键盘中输入的内容提\n'取到流中。

4)endl=='\n'=="\n"均表示换行

3.缺省参数:

1)缺省参数就是含有默认值的形参

2)缺省参数初始化为从右向左顺序

3)实参赋值给形参为从左向右的顺序

4.函数重载:

函数名相同,但是参数不同(包括参数的类型和参数的数量不同)的一些列同名函数构成重载。

5.引用:

1)引用是同一块内存的别名,引用一旦确定不可修改,引用传参,本质上是传地址,同一块内存可以有多个引用。

2)引用的实际作用:

引用作为返回值和传参时,可减少拷贝,提升效率;引用可简化程序,避免使用较为复杂的指针。

3)与const相关的用法:

引用被const修饰时,只能缩小权限,不能放大权限

const int a=10;
const int&ra=a;
//不能写成 int&ra=a,这样会使得a可以修改 权限被放大
int c=20;
int d=40;
const int&r=(c+d);
//不能写成int&r=(c+d),c+d会临时生成一个对象,临时对象具有常数性,不可被修改,所以要加const修饰

4)指针和引用的关系:

引用是别名,不开空间;指针是变量,要开空间

引用必须初始化,指针非必须初始化

引用初始化一个对象后,不可改变引用的对象;指针可随意改变指向的对象

sizeof引用为引用类型的大小,sizeof指针为地址大小,是一个常数

5)inline:

inline是对C语言宏函数的一种替代,编译器会将inline在调用处展开。

编译器会对Inline函数有选择性,只有代码短小且多次重复调用的情况下,编译器才会选择将其视作内联函数。

debug模式下,默认不展开内联函数。

内联函数不建议放在两个文件中,避免分离导致链接错误

6)nullptr:

由于C语言的NULL的定义为(void*)0,这使得某些情况下对0和空指针的界定不清,产生错误,C++采用nullptr规避这一问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值