全局函数指针数组



如何在c++中创建全局函数数组?

我想要这个:

//f.cpp
#include "head.h"
void f() {};
//g.cpp
#include "head.h"
void g() {};
//head.h
#pragma once
void f();
void g();
typedef void (*f_t)();
f_t Fs[2] = {f,g};
//main.cpp
#include "head.h"
int main() {
Fs[0]();
}

类似的东西在C中对我有用,但我是c++的新手。我尝试了很多编译东西的方法,但是,每次,g++都给了我"多个定义"。错误。

如何创建全局数组没有初始化它通过一个函数?

我试图实现相同的,但在一个单独的"const_array.h"文件;这解决了问题,但是,当我将它包含到其他文件时,它给我同样的错误。

再添加一个文件:

//head.h
#pragma once
void f();
void g();
typedef void (*f_t)();
extern f_t Fs[2];
//head.cpp
#include "head.h"
f_t Fs[2] = {f,g};