C++学习笔记(4)

函数

----参数传递:普通非引用参数,传递时通过复制对应实参实现初始化,实参本身的值不会被改变。包括指针形参和const类型形参也是如此。const类型形参所传递的实参不一定是const 类型,但在函数作用域中不能再被修改。   

----数组类型的形参:三种形式int *array   int array[] array  int array[10],第三种形式需要注意,传入的参数长度小于10时不会报编译错误,但是运行时会造成数组越界。而通过引用传递数组是int (&array)[10];  圆括号不可少。

----引用形参,参数名前加引用符号。(1)使用引用形参可以返回额外信息,这些信息并没有显式的写在return 的参数中.(2)使用const 加引用形参可以避免该形参被复制(有时形参对应对象规模较大,复制比较低效)

传递指向指针的引用:形式为 int *&p

----main函数的参数传递:int main(int argc,int* argv[])或者第二个参数写为int **argv。argc是传递给main函数的命令行参数个数,argv[0]指向程序运行的全路径名,argv[argc]指向null,argv[n]指向命令行第n个字符串。

----带有可变形参的函数,对于未知的参数可以用三个点表示,例如void foo(int a,...)或者foo(...)

----函数的返回值:不要返回局部对象的引用或者指向局部对象的指针,因为执行完毕局部对象的空间被释放指向了无效的内存空间

----默认实参的初始化void f(int a=1,int b=2,int c=3)

----函数中只有在函数被调用时才存在的对象成为自动对象,函数调用结束时就会被释放。但是静态局部对象可以在第一次被调用时创建,然后直到程序结束才会被释放。

----内联函数:优点:避免调用时的开销。缺点:函数存在大量循环或者函数体较大时占用内存较大。把内联函数放入头文件可以保证调用该函数时调用的是同一个函数。

---类的成员函数:每个类的成员函数有一个隐含的this指针,初始化为调用函数的对象的地址。成员函数内不需要显式的使用this,没有前缀的都被认为是this。

----类的构造函数。f():parm1(1),parm2(2),parm3(3){}。花括号内是函数体,冒号和花括号之间叫做构造函数的初始化列表

----函数重载与重复声明:两个函数如果形参列表和返回类型完全一致,这是重复声明,这种会报错

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值