C++_从C到C++

时间:2019-04-19
本文章向大家介绍C++_从C到C++,主要包括C++_从C到C++使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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;
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两点不同的内在原因是,引用在传递参数的过程中,接受参数的变量名是原来参数的别名,是在原来的基础上进行的修改)