c++下关于函数调用的一些要点(待补充)...
时间:2010-08-14 来源:jon986cn
最近在准备面试,从测试转开发的确是有些困难,所以也在狂补C++。总结了一些函数调用的要点.
一.参数方面:
1. c++允许实参个数小于形参个数,在没有指明该实参的情况下会调用形参的缺省值/默认值;
2. 某个形参如果给出了默认值,那它之后的形参都必须给出默认值;
3. 形参的默认值要在函数声明中给出,而不是在定义中给出。
理解:
1. 图方便;
2. 如果一个形参没有给出对应的实参,那是不是之后的形参都不能给出实参?否则编译器怎么知道哪个实参对应哪个形参?
3. 方便修改吧。
二. 引用与指针:
引用时c++引入的新概念,在函数参数中使用时,可以理解成他就是实参的一个别名,修改形参就是修改实参。引用与传址指针有相似之处,但是还是有些区别:
1. 引用必须有原对象,不能定义没有被引用对象的引用,所以不会存在像指针这样没有赋值就被使用的危险性;
2. 引用一旦定义就不能被修改,而指针如果没有被指定const则可以修改它指向的内容。
理解:
1. 即可以定义TCHAR *p而p可以不指向任何对象,这样在之后使用p的时候会出现不可知的问题;SEP也出现过指针没被初始化然后就使用而造成的BUG; 所以自己在写程序时如果要使用指针最好先对if(!p)进行处理。
2. 即不可以TCHAR &r = R1; 之后又TCHAR &r = R2。
3. 使用引用和指针的特别情况--参考了More effective C++-- 在重载运算符时最好使用引用;如果需要指向不同的对象或者不指向任何对象,则必须使用指针。