C++_从C到C++

本文介绍了C++中的新类型,包括布尔类型和引用的使用,详细阐述了引用作为函数参数的优势。接着讨论了函数重载、内联函数的概念和作用,以及何时使用内联函数。此外,还讲解了C++中的动态内存管理,new和delete的用法,以及如何申请和释放数组内存。最后,提到了cin和cout作为新的输入输出方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.写在前面

 stdio.y=strand(标准)、io=input&&output
 iostream=input and output stream(流)
 cout=printf
 endl=\n
 (C语言里也有C++不包含的东西)

2.正文内容

2.1新类型

2.1.1布尔类型:
格式:

  • bool 变量名=ture;

  • bool 变量名=fause;

    (这里bool的实际应用还需要后面补充)

2.1.2引用类型:
a.说明:

  • 引用是已定义的变量的别名

  • 主要作用是函数传参

    b.定义格式:

int a;
int &name=a;

c.指针与引用的区别

  • 引用与所指向对象具有相同的值和地址

  • (指针只同所指对象有相同的值,但是地址不同)

  • 必须在声明引用时将其初始化,而不像指针一样先声明在初始化

  • 引用一旦初始化成功其指向不可改变,而指针的指向可以改变

    d.引用用作函数参数的方法

int fun(int & a);(c++P258)

2.2函数

2.2.1重载(函数重载或函数多态):

  • 函数重载使得编程过程中可以使用多个重名函数

  • C++使用上下文来确定要使用的重载函数的版本

    函数特征标:

  • 两个函数参数的数目和类型及参数的排列顺序是否一致

  • 在函数只有个声明时,传参过程如果不匹配则会发生强转,如果有过个重载函数都近似则会发生报错;

  • 类型的引用和类型本身看成是同一个特征标

2.2.2内联:

a.内联说明:

  • 函数在调用的过程中方式如同阅读时查看脚注(给调用函数创建地址,然后跳转到调用函数处,执行调用函数代码,然后跳转回原函数),这个过程中存在一定的跳转时间,为了解决跳转过程中存在跳转时间这个问题,而出现内联函数

  • 对于内联代码,程序无需跳到另一个位置处执行代码在跳转回来,而是在源位置创建代码副本,直接执行

  • 内联函数的运行速度比常规函数稍快,但是需要占用更多内存

  • 应该有选择地使用,因为内联所节省的时间有限,除非该函数经常被调用

  • VS中,即使是在代码中定义了内联函数,在编译过程中编译器也可能不选择内联操作

  • 内联不能用在递归、

    b.内联函数定义方式:

inline fun(参数1,参数2);

  • 在主函数中书写方式为直接使用fun函数

2.2.3缺省:

  • 缺省就是给函数的参数附默认值调用的时候没有参数就使用默认值

eg.void fun(int x,int y=2,int z=3);
fun(5,1);//调用的时候,z没有传参就使用默认值

  • 缺省的过程只能从右到左缺省
  • 如果同时存在函数声明和函数定义,只需函数声明写缺省就可
  • 同时有重载和缺省要注意函数二义性的问题(程序不知道是缺省了,还是重载了)

2.3新的内存申请方式——new 和 delete

  • new 和 delete必须配对使用

2.3.1定义格式:

a. new格式:

tpyeName* pointer_name=new typeName;//new将找到一个长度为int的内存块,并返回该内存块的地址

b. delete格式:

  • delete pointer_name;

new-delete补充

  • 下图中,类型也可以是自己定义的任何类型

new-delete补充
2.3.2 数组申请动态内存及释放内存的方式

  • 申请:typeName *pointer_name=new type_name[num_elements];

  • 释放:delete [] pointer_name;

2.4新的输入输出方式——cin 和 cout

  格式:
  #include<iostream>
  using namespace std;
  int main()
  {
   int x;      //定义变量
   cin>>x;      //输入变量
   cout<<"x的值是"<<x<<endl; //打印内容
   cin.get();
   return 0;
  }

3.说明

  • 动态内存中访问数组元素其它内容的方式同C语言
  • 变量是在编译时分配的有名称的内存,而指针是为可以通过直接访问内存提供的别名
  • 指针真正的作用在于在运行阶段分配未命名的内存以存储值
  • const类常与引用搭配,而这里还没有涉及
  • 函数列表也称为函数特征标

函数间传递参数的方式有三种:

  • 1.定义一个具有返回值的函数,函数只能返回计算结果,其传入的参数不变

  • 2.定义函数时,其参数定义为引用,这样在执行函数的过程中,传递的参数的值也会发生改变

  • 3.定义函数时,其参数定义为指针,这样在执行函数的过程中,传递的参数的值也会发生改变

(具有1.2两点不同的内在原因是,引用在传递参数的过程中,接受参数的变量名是原来参数的别名,是在原来的基础上进行的修改)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值