C/C++教程

游戏开发 c++基础学习 笔记摘要第16天

本文主要是介绍游戏开发 c++基础学习 笔记摘要第16天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

函数重载

在同一作用域内的几个函数名字相同但形参列表不同
当调用函数时,编译器会根据传递的实参推断调用哪个函数

不允许两个函数除了返回类型其他要素都相同

Record lookup(const Account &acct);
Record lookup(const Account &);//省略了形参的名字
//两个函数时相同的,形参的名字不影响形参列表内容

重载和const形参

顶层const不影响传函数的对象
一个拥有顶层const的形参无法和另外一个没有顶层const的形参区分开

Record lookup(Phone);
Record lookup(const Phone);//重复声明了Record lookup(Phone)
Record lookup(Phone*);
Record lookup(Phone* const);//重复声明Record lookup(Phone*)

const为底层const时,对于接受引用或指针的函数来说,对象是常量还是非常量对应的形参不同

Record lookup(Phone*);
Record lookup(const Phone&);
Record lookup(Phone*)
Record lookup(const Phone*)

内联函数(inline函数)

作用:函数调用需要时间和空间的代价,为了解决函数调用效率问题
原理:以空间为代价,节约时间
1.内联函数适合规模较小且频繁的函数
2.内联函数中不能有switch和循环

函数的缺省

如果一个函数的形参有默认值,那么该形参右边必须都有默认值
函数的定义和声明缺省函数,两者留其一

分享一个关于内存的题

int x1=30,x2=40;
void sub(int x,int y)
{
	x1=x;x=y;y=x1;//交换x,y,由于无返回值,只有全局变量x1被保存下来
}
int main()
{
	int x3=10,x4=20;
	sub(x3,x4);//x1=x3=30,x4=20
	sub(x2,x1);//x1=x2=40,x1=40
	cout<<x3<<x4<<x1<<x2;//10,20,40,40
}

strcpy函数原理

char*strcpy(char*strDest,const char * strSrc)
{
	 if(strDest==NULL || strSrc == NULL)
	 		return NULL;
	 char*temp=strDest;
	 while((*strDest++=&strSrc++)!='\0');
	 return temp;
}
这篇关于游戏开发 c++基础学习 笔记摘要第16天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!