函数指针的使用
有一些C/C++编程经验的同学应该都知道,函数指针这个概念:函数指针,即指向一个函数的指针,我们可以通过函数指针来访问一个函数,这时函数可以像对象一样使用,比如用于函数参数,比如使用数组对函数指针进行存储;如下是函数指针使用的一个实例。
#include "stdafx.h"
#include <iostream>
void func1() { std::cout << "func1" << std::endl; }
void func2() { std::cout << "func2" << std::endl; }
void func3() { std::cout << "func3" << std::endl; }
typedef void(*FuncType)(void);
void func(FuncType f)
{
f();
}
int main()
{
FuncType f_arr[3];
f_arr[0] = func1;
f_arr[1] = func2;
f_arr[2] = func3;
func(f_arr[1]);
for (int i = 0; i < 3; ++i)
{
f_arr[i]();
}
return 0;
}
虚函数表
C++是一门面向对象语言,有面向对象语言的三大特性:继承,封装,多态;今天我们要说的内容和多态这个特性紧密联系。
C++多态的实现依赖于虚函数表,每一个具有虚函数的类