c++学习笔记

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);和默认参数搭配,引发歧义现象
  		这种问题不要怕, 编译器给告诉你歧义,你只要修改就行了

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小镇春风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值