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);和默认参数搭配,引发歧义现象 这种问题不要怕, 编译器给告诉你歧义,你只要修改就行了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)