关于c++①

中心主题

1、C++与C的区别

1.C++是完全兼容C,只要是合法的C语言程序在C++中都是合法的

2.C++比C额外扩充了非常多的内容;

3.编程思想不一样

C是面向过程的结构化程序设计语言:更注重的过程,其实在C中结构体就在面向对象编程了,但是不够彻底

C++是面向对象的编程语言:更注重结果的。整个程序中都是一个一个的对象。

2、命名空间

作用

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

分类

有标准的命名空间也有自定义的命名空间

格式

namespace{  };

使用

方法1: 命名空间的名字::变量名等!

方法2: using namespace 命名空间名字;               直接使用;

3、标准输入输出流

什么是流:以字节为单位,连续不断,方向统一的就是流

C中标准的输入输出:printf和scanf---头文件   stdio.hC++中输入输出流: iostream   using namespace std;

 输出流对象Cout: 输出数据到标准输出设备上  输入流对象Cin:    从标准输入设备上输入数据到变量中

好处:在操作的时候不要指定数据的格式

4、引用类型

目的

弱化指针,因为指针能实现的效果,引用一样也可以实现   减少了临时空间的分配,因为定义指针变量系统是会给分配内存空间的,但是引用类型是不需要分配内存空间的

什么是引用

引用就是给一个变量起个别名  ,说明它和变量本身是同一个

定义引用:数据类型 &引用名 = 变量名;

特点: 必须初始化,引用不可以改变指向

作用:1.作为函数参数,传参如果在函数内容对变量的值做了修改,外部变量本身的值也会发生变化

Const修饰的变量一般都出现在函数的参数上,为了保证数据在传递的过程中,值不被修改,保证数据的安全性

8、动态内存分配

c

mallocfree

c++

newdelete

7、C++如何引入C的库

生成的静态库在c中可以使用,同样的在c++中也要能够使用的

: gcc编译函数名不会发生变化,但是用g++编译函数进行了重命名,函数地址后发生变化了,找不到对应的函数

区分是gcc编译器还是g++编译器在.h中加入判断以及处理方式

6、参数默认值

解决问题

当函数重载中出现只有函数参数个数不同的情况下,可以通过给参数设置默认值来减少重载函数的个数,减少代码冗余!

当函数的参数有默认值的情况下,要注意二义性(调用冲突

当函数的参数有默认值,在调用函数的时候可以给值,也可以不给值;给了值,就按给的值,如果没有给值,按默认的值去做处理

参数默认值给的顺序从右向左调用时给参数的顺序是从左向右

5、函数重载

解决问题

函数功能相似,唯有函数的参数类型不同、个数不同等一组函数

定义

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

函数调用原理

g++编译后函数的名字会发生变化:  重命名之后的函数名是根据参数类型与参数个数+函数名字组成的

每一个函数在内存中都有对应的地址;调用的时候就是根据这个地址找到对应的函数体,去执行

函数重载的原理: g++编译,函数名会根据形参个数+形参类型进行重命名,这样子调用的时候就可以知道应该执行哪一个函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值