面试笔记6(函数)

1.const只能作用于成员函数,不能作用于全局函数。函数原型就是函数的声明。

2.为避免传递副本的开销,可将形参指定为引用类型。对引用类型的任何修改会直接影响实参本身。应该将不需要修改相应实参的应用类型定义为const引用。

3.int * &v1的定义应该从右向左理解,v1是一个引用,与之相int类型对象的指针相关联。

4.如果交换函数传递的是指针,但是改变的是形参指针的指向。这样实参指针的指向并没有改变,所以应该传递指针的引用。这样就能改变实参指针的指向。

5 在类中定义的成员函数全部默认为内联函数。在类外定义的成员函数如果加上inline也是内联函数。

 在普通函数声明或定义前加inline使其成为内联函数。

7.默认参数定义的顺序为从右到左,如果一个参数设定了默认值时,其右边的参数到要有默认值。

默认参数调用要从左到右调用。

默认值可以是全局变量、全局常量、甚至是一个函数,但不能是局部变量。

8,可变参数函数,要有第一个参数,后面的参数的个数和类型是可变的,用三个点  ...做参数占位符。

9.进行函数重载时,要求同名函数在参数个数上不同或者参数类型上不同。

10.模板是泛型编程的基础,模板是创建类或函数的蓝图或公式。

11.函数模板

template <typename  T>   可以是class或者typename

函数名(形参)

{

}

12.宏定义和内联函数的区别:

宏定义是在预处理阶段进行代码替换,而内联函数是在编译阶段插入代码,其次宏定义没有类型检查,而内联函数有内链检查。


13.类模板

 tempalte<class  T> 

class  类名{
}

使用类模板时,必须显示指定形参

14 递归模型不能是循环定义的。必须满足以下两个条件

a 递归表达式(递归体)

b 边界条件(递归出口)

递归的精髓自傲与能否将原始问题转换成属性相同但规模较小的问题。

将递归算法转换为非递归算法,通常借用栈来实现这种转换,将递归转换成迭代。

注意:遇到递归时画递归树是一种方便的求值方式

15.对象释放后,将指向对象的指针变量置为null,有利于提高程序的健壮性。

16.被调用的函数在调用之前进行声明即可,构成C++语言程序的基本单位是类。

17.如果前面只定义了模板的声明,则模板类则不能定义对象。但是可以定义指针和引用。

18 extern "c"  告诉编译器该函数是用C编译器编译的,请用c的方式来链接他们。用法是在函数声明时,前面加上“extern c”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值