C++基础

一、C++关键字

二、命名空间

使用命名空间使得用户自定义变量名和关键字和库隔离,这就是“#include <iostream>
using namespace std;”的原因。

访问变量时优先访问局部变量再是全局域,并在这一过程中不会自动去命名空间检索变量(一般不会使用展开命名空间,否则可能会导致歧义),使用“::”域作用限定域指定访问一个域的变量形式位“域::变量名”,(域为空时表示全局域),所以可以使用域作用限定符去指定访问一个命名空间的变量。

展开命名空间:自动检索时要去命名空间检索。

命名空间可以嵌套使用,同理可以嵌套使用域作用限定符。

三、C++输入&输出

使用头文件iostream,cout<<"XXXXXX"; 

由于C++兼容C,可以直接使用C的输入输出。

四、缺省参数

传参只能从左往右传参。

在头文件中,在函数声明和函数定义时不能同时给缺省参数赋值,只能声明的时候给缺省参数。

五、函数重载

函数重载是函数的一种特殊情况,C++允许在同一个作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数、类型或类型顺序)不同,才称为函数重载。

C++支持函数重载的原理为:这一过程涉及预处理->编译->汇编->链接

预处理:展开头文件/宏替换/条件编译/去注释/.... ,生成xxxx.i 文件

编译:检查语法,生成汇编代码,生成xxxx.i文件

汇编:生成二进制机器码

链接:将机器码合并,生成可执文件

C++在函数重载时,是在链接时是生成重载函数的地址,符号表中表项(键值包含函数名和参数的综合键值)不同即不同函数对应的地址是不同的。而C中的符号表只将函数名作为符号表的键值,所以不允许同名。所以C++中同名函数的形参列表(参数个数、类型或类型顺序)不同才可以。

六、引用

C++对于C中的指针创新了一种新方法。引用不是定义一个变量,而时给已存变量取了一个别名,编译器为引用变量开辟内存变量,它和它的引用的变量共用一块存储空间。

别名一经确定就不会改变,但是可以对别名进行赋值

引用的应用场景:

        1、做参数(形参的改变影响实参)

        2、引用做返回值,引用做返回值时,不会拷贝返回值,如果返回时函数栈帧销毁,引用的值会变为随机值(使用的时候注意函数栈帧改变会导致别名改变)

综上,基本任何场景都可以用引用传参;谨慎使用引用传参。

引用权限:

引用过程中,权限不能放大,但是可以变小

七、构造函数

构造函数是特殊的成员函数,作用是初始化对象。

特征如下:1、函数名和类名相同

2、无返回值

3、构造函数可以重载

4、自动调用

5、如果没有显式定义构造函数,会自动生成(一般构造函数都是需要自己写)

6、构造函数默认只有一个

八、析构函数

1、析构函数前有符号~

2、无参数无返回类型

3、不允许重载。一个类只会有一个析构函数,默认生成的析构不会作用,自定义类型成员变量会使用自己的析构函数。

4、对象生命周期结束时,C++编译系统自动调用析构函数

九、拷贝构造

C++规定,内置类型直接拷贝,自定义类型必须调用拷贝构造

1、拷贝构造的参数只有一个,参数只能使用引用(也可使用指针),否则会导致无穷递归

2、若为显式拷贝构造,编译器会生成默认的拷贝构造(内置类型成员完成值拷贝,自定义类型成员会调用它的拷贝构造)

十、运算符重载

operator

为了增加代码的可读性,运算符重载是具有特殊函数名的函数。

函数名为:opertor后面接需要重载的符号。

1、不能通过连接其他符号来创建新的操作符,如operator@

2、重载操作符必须有一个类型参数

3、对如内置类型的运算符,其意义不能改变

4、作为类成员函数重载时,其形参看起来比操作数数目少一,另一个为隐藏this

5、.*  ::    sizeof   ?:    .   这五个运算符不能重载

默认成员函数都不能写为全局。

可以直接支持内置类型是库里面实现了,可以直接支持自定义类型是因为函数重载。

重载默认占用第一个参数,就做了左操作数。

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值