第六天:在VC++中函数参数的传递有按值传递和引用传递两种方式。 如果接收函数改变了传送给它们的参数的值,而且这些改变在调用函数中被识别,则认为是按地址传送。 如果调用函数的参数在接收函数中保持不变则是按值传递。 所有的数组都自动被按地址传递,而不能按值传递数组,数组的名是一个指针。指针永远等于数据的地址。 任何非数组变量都可以采用引用传递,只要在接收参数表中插入一个&符号就可以表示一个变量进行引用传递。 引用传递是高效的安全的,可以在接收引用参数前加const,以防止函数无意间改变了引用参数。 在函数原型中可以声明缺省参数表,简化编程。函数不只可以声明一个缺省参数,可以按需要声明多个,还可以混合常规参数。但缺省参数必须在参数表中所有常规参数的后面。 defFun(int,flost,int=12,char='a');//标准的函数声明,可以不带参数变量名。带上变量名可以直接拷贝到函数的第一行,但函数的第一行不要求带缺省值。 在一个程序开始运行时传入的值称命令行参数。当敲入一个或多个命令参数给一个程序时,这些参数是通过两个变量来描述,一个是一个整型变量用于保存命令参数的个数,另一个是字符指针数组用于保存这些参数。每个数组元素指向一个参数。给个例子 main(int argc,*argv[]) argc和argv是标准名字,其中*agrv[]是一个指针数组,一个数组名是一个常数指针,所以argv是一个指向其它指针的指针。而argc保存的是实际的参数个数加1,第一个用于保存dos路径和文件名。 第七天:将功能类似,但要求参数有不同的类型和数目的函数重载。 为所有的重载函数说明原型。不要仅仅改变重载函数的返回值,只有不同的参数表才能把重载函数区分开。 用户给函数一个名字但VC在调用时会将此名字进行压延成另一个名字这样用来区分重载函数。 如果用户希望不压延函数调用,需要在程序的开头插入一个非压延函数清单。 extern "c" { void cfun(int i,float x); void cfun2(float x, float y); } 重载运算符:operator...()//...表示所选择的运算符,除了?:条件操作符,::域运算符,*间接引用运算符,.成员运算符。 在自定义数据类型上实现内部运算,使用重载运算符。不能对内部数据类型定义重载运算,也不能改变运算符的优先级别。 |
正在阅读:『21天精通C++』第一周学习笔记『21天精通C++』第一周学习笔记
2004-02-14 09:34
出处:PConline
责任编辑:zwg
键盘也能翻页,试试“← →”键