成长随心记
1,函数的默认参数
1)一般函数默认参数写在函数声明
2)默认参数只能在函数声明或者定义时写,二者不能共存
例:void fan(int a=10,int b=10);
void fan(int a=10,int b=10){
return a+b;
} 错误
3)函数默认参数只能从右到左写
例:fan(int a,int b=10)正确
fan(int a=10,int b)错误
2,递归函数
1)无限套娃,自己调用自己
2)要写判断结束条件,不然程序奔溃
例:求1加到100;
int fan(int x){
if(x > 0)
return x+fan(x-1);
else
return 0;
}
3,哈希函数,在刷bz时看到,现在还不是很了解,我的理解类似数学的一一映射,输入一个数据,返回一个独一无二的数据,且下次输入相同数据时要返回相同的数据
4,函数的重载
1) 语法:同一作用域下,不同的函数,函数名,返回类型相同,函数的参数类型,个数,参数顺序不同可以发生重载
2)作用:方便程序员使用,用来处理功能类似但参数类型个数不同的情况
3)注意:当处理函数带默认参数的时候,要注意不能发生歧义
例:void fan(int a,int b=20);
void fan(int a);
fan(10); 错误,有歧义
5,构造函数
1)作用:为了类的初始化
2)语法:a) 类名+(){...}
b) 也可以设置默认参数,类名+(参数):类下参数名(0){...}(程序员常用)
3)注意:当类定义时,执行构造函数,无需程序员自己调用,构造函数可以有多个,可以进行重载
6,析构函数
1)作用:为了参数空间的释放,如指针,或者为了函数结束前想执行的最后一步操作
2)语法:~类名+(){...}
3) 注意:当函数结束前调用析构函数,析构函数只有一个不能进行重载
7,拷贝函数
调用时机:1)用创建一个好的类来初始化一个新的类时
2) 值传递的方式来给参数传值,就是传递对象参数
3)以值的方式返回局部对象,就是return对象
8,关于构造函数和析构函数和拷贝函数
1)先定义的类先执行构造函数后执行析构函数,类似FILO
2)定义了带参数数的构造函数,系统不定义不带参数的构造函数,会定义拷贝函数
3)定义了拷贝函数,系统不定义构造函数
9,斐波那契数列(递归)
1)int fan(int indenx){//indenx表示第indenx位置上的斐波那契数
if(indenx==1||indenx==2)
return 1;
else
return(fan(indenx-1)+fan(indenx-2));
}
10,pow(2,3)表示2的3次方,此函数包含在math.h头文件中
11,深拷贝与浅拷贝
问题:当拷贝内容有在堆区开辟空间时,如果用系统自带的浅拷贝会导致堆区空间重复释放,报错
1)浅拷贝:简单的赋值操作
2)深拷贝:重新在堆区开辟空间,进行拷贝操作
例:class person{
pubilc:
person(int age,int height){//普通构造函数
m_age=age;
m_height=new int (height);
}
person(person& p){//拷贝函数
m_age=p.m_age;
//m_height=p.m_height;//浅拷贝,编译器自己执行的
m_height=new int (*p.height);//深拷贝
pravite:
int m_age;
int* m_height;
}
------------------------------------------------------------------------------------------------------------------------------
个人心得:
变强的路上注定孤独,没有一丝丝余地,当你的主动得不到想要的回报时,他就会慢慢消失,直到不再联系
赚好多好多钱,这是我的目标
网络上的与技术无关的社交就是无效社交,与技术无关的学习就是无效学习,长时间刷抖音也是无效,刷抖音是为了放松自己,而不是沉迷
在我看来大学就是混一本毕业证书,IT行业看的是你的技术,而不是你的大学成绩有多优秀
看了一些网络招聘,发现需要的技术栈比较多,至今学到的技术还比较薄弱只会一个C语言,数据结构和算法还需要很长的时间沉淀
兴趣是最好的老师!!!要培养自己对编程的兴趣,看看与编程有关的视频不是无效。