7.8函数 2

来源:互联网 发布:java treeset 排序 编辑:程序博客网 时间:2024/04/27 17:23

7.8.2 模板函数/函数模板 模板类要好好看看

1.函数模板是对一批类似的函数的说明和描述

2.模板函数则是把函数模板具体化后的重载函数。

函数模板:

template<模板类型形参表><返回值类型><函数名>(模板函数形参表){

   //函数体。

}

类模板/模板类



指针常量/常量指针

1.指针常量:int *const a=&b;

2.常量指针:const int *a=NULL;

对于字符串,可以这样获取地址 &("abc");


7.8.4重载和覆盖。

重载:在同一作用域下,有相同函数名,返回值,不同参数类型的函数。参数无二义性。

注意:引用形参。

覆盖:类的派生类中重新定义了基类的函数,特别覆盖了基类中的虚函数,对于实现多态而言,使用基指针可以根据派生类不同调用不同的覆盖版本。

注意:覆盖要求参数列表相同。

隐藏:基类没有用virtual修改函数,只是单纯隐藏,用基指针调用基类被隐藏函数。


7.8.5 是否可以通过绝对地址进行参数赋值和函数调用。

可以,但是要知道绝对地址的类型,随意给一个地址会导致程序崩溃。

还有函数地址同理,本质上还是用指针,指针用&来赋值。


7.8.6 默认构造函数能不能调用单参数构造函数

不可以,强制写到默认构造函数的函数体内,可以执行,但不会执行初始化列表,初始化列表只在定义时调用的构造函数发挥作用。


7.8.7 函数调用的几种方式

比较偏的知识,堆栈中一块连续内存分配给函数,保存调用函数前的返回地址,环境变量,调用中的局部变量,实参。

调用方式有四种。。。


7.8. 8可重入函数

在C中编写可重入函数,就是可被多个进程“同时”调用的函数,注意这类函数尽量不用使用全局变量和静态变量。保证相互间不冲突。

可采用几种机制:信号量机制,关调度机制,关中断机制。

一般驱动程序都是不可重入的。





0 0