C++相关知识点

Day1

1.C++与C的区别

1.1  C++兼容一切合法的C的程序,C++是C的增强版

1.2  C++中扩展更多的内容,数据类型:引用、类类型、布尔类型等

1.3  设计思路不同:C++是面向对象,面向对象是指:注重结果,不在乎过程;

                                 C是面向过程,面向过程是指:注重过程,只有过程正确才能得到结果。C语言中也有面向对象----结构体,只是不够彻底

2.命名空间

2.1 产生的原因:

为了解决命名冲突问题(变量、函数、自定义的数据类型)

2.2 命名格式

namespace  命名空间的名字(可以是变量,函数、自定义的数据类型)

例如:namespace  s1

2.3 使用

2.3.1  命名空间名::变量名

例如:printf("a = %d\n",s1::a);

2.3.2 using namespace 命名空间名字;

例如:using namespace s1;

3.标准输入输出流

3.1  输入流对象  cin

使用:cin>>变量

3.2   输出流对象  cout

使用:cout<<变量

4.引用类型

4.1本质

给变量取别名

4.2 定义格式

数据类型  &  引用名(给变量起的别名) =  变量名;

例如:int  &  pt = p;

4.3引用存在的意义

弱化指针;减少临时空间的分配,只要定义一个指针变量,就要分配相应的内存空间;引用不需要分配内存空间。

4.4用途

应用在函数参数的设计上。

4.5引用和指针的区别

4.5.1引用是给变量起别名的;指针使用来保存地址的。

4.5.2定义引用不会额外的分配内存空间;只要定义指针变量系统就会给它分配内存空间。

4.5.3引用定义完必须进行初始化;指针变量定义完之后可以不进行初始化,但是一般为了避免野指针的出现,会将指针变量初始化为NULL。

4.5.4引用初始化之后不可以改变指向;但是指针变量是可以改变指向的。

5.函数重载

5.1 是什么

函数命名时,实现相似功能的函数名可以一样。

5.2 存在的意义

解决了函数命名难的问题。函数功能相似,参数不同(参数类型不同,参数个数不同)的一组函数。在C中不同出现同名函数,但C++中可以。

5.3 定义

函数名相同,函数功能相似,参数不同(参数类型不同,参数个数不同,参数类型的顺序不同),与返回值类型无关的一组函数

5.4 函数重载的原理

使用C++进行编译时,函数名会根据函数类型以及参数个数进行重命名,函数名会发生变化,函数在内存中的地址就不同,调用的时候执行的就是不同的函数体。

6. 参数默认值

6.1 是什么

在函数定义的时候给了形参一个初始值。

6.2 解决问题

当函数参数有默认值,可以解决在函数重载时,只有参数个数不同二造成的代码冗余。

6.3 使用时的注意事项

6.3.1 参数默认值给的顺序是:从右向左;调用函数的时候参数匹配的顺序是:从左向右。

6.3.2 在函数重载时,要注意“二义性”

 6.3.3 当函数声明和函数定义同时存在时,参数的默认值只能出现一次,最好放在函数声明中。

7.在C++中引入C的库

7.1 标准库

直接#include<>  即可

7.2 自定义库

在.c文件中加入  extern  "C" {}

8.动态内存分配

8.1 开空间

8.1.1 new运算符

使用格式:(1)数据类型  * 指针变量 = new   数据类型;

例如:int  * p = new  int;

(2)数据类型  *  指针变量 = new  数据类型[个数];

例如:int  *  p = new  int[5];

8.2 释放空间

8.2.1 delete运算符

使用格式:(1)delete  指针变量;

例如:delete  p;

(2)delete   []   指针变量;

例如:delete []  p;

8.3 new和malloc的区别

8.3.1 new是C++中的运算符;malloc是C中标准的库函数。

8.3.2 new 后面只跟数据类型即可,并且开空间后不需要进行强制类型转化;malloc开空间:要给开空间的大小,并且开空间后要进行强制类型的转换。

8.3.3 new开的空间用delete释放;malloc开的空间有free去做释放。

8.3.4 new开的空间可以做初始化;malloc开的空间初始化只能用memset去初始化。

Day2

1.面向对象编程中的类和对象

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值