c++学习笔记

c++学习笔记,第1张

c++学习笔记

c++: 面向对象的
领域:
大型软件,超大型软件,比如 游戏引擎 后端服务器 视频算法 AI …

  对象:
  	这个世界是面向对象的.这个世界是因为对象相互交互而运行的.
  	对象,凡是占据一定空间的事物,都称为对象.
  				
  C++不好的地方:版本太多了,新特性产生, 各个版本兼容性差.
  特点:
  他是C语言的超集-------以前的C都可以继续拿来使用
  				
  1.扩展了C语言的特性
  	引用   异常   const常量  inline  泛型编程  模板库  namespace
  			
  2.增加了面向对象的实现
  	封装 继承 多态
  					
  3.模板库STL
  	C语言中,数据结构是要自己构建的,
  	C++提供了一种库,库内部构建了所有数据结构, 称为STL库

引用

C语言 指针,复杂 容易出错 很多语言没有指针:java python …
引用,可以实现指针的缺失问题

  	引用,其实就是变量的别名.
  	int &b=a;  1.定义必须初始化, 2.没有分配空间
  	
  用法1:	作为函数传参
  	优点:
  		实现对函数外部的变量改变
  		没有分配 函数局部变量


  用法2: 作为函数返回值
  	int &sum(int a,int b)
  	{
  		return a+b;  函数内部会专门分配一个局部变量,专门用来存储返回值的
  					如果返回的是引用,这引用,引用了这片局部空间
  	}
  
  	int &c = sum(5,6);   c是一个引用/变量, 引用了sum内部的一个局部变量
  						但是sum结束后,本体消息了,c 
  						这是一个错误的用法
  	
  	问题:
  		引用作为函数返回值,不能返回局部变量
  		so,引用作为函数返回值,一般返回
  			1.全局变量  
  			2.静态的局部变量
  
  		int g_var=9;
  		int &sum(int a,int b)
  		{
  			g_var=a+b;
  			return g_var;
  		}

  	int cc=sum(5,6);   --->  int cc=g_var的引用,就是g_var本身.  cc是独立的空间
  	int &dd=sum(6,7);  --->  int &dd=g_var的引用,就是g_var本身, dd没有独立空间.

函数的重载

函数的重载 overload

  C语言:	C语言不允许函数重名 
  		int  	sum_int(int a,int b);
  		double 	sum_double(double a,double b)
  		long    sum_long ( ......);

  C++:
  		int     sum(int a,int b);
  		double  sum(double a,double b)
  		int     sum(int a,int b,int c)
  		int 	sum(int a,double b);
  		int     sum(double a,int a)
  		double  sum(double a,int a);  错误
  
  		sum(5,6);
  		sum(6,2,5);			G++编译器根据你传参的##个数  类型 顺序###找出你想要调用的函数,然后调用
  		sum(6.3,23.3);		返回值不参与函数的识别,因为我们经常不接受返回值
  		sum(3.6,8);和默认参数搭配,引发歧义现象
  		这种问题不要怕, 编译器给告诉你歧义,你只要修改就行了

参与函数的识别,因为我们经常不接受返回值

  		sum(3.6,8);和默认参数搭配,引发歧义现象
  		这种问题不要怕, 编译器给告诉你歧义,你只要修改就行了

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2889257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-14
下一篇 2022-09-14

发表评论

登录后才能评论

评论列表(0条)

保存