我正在做一个项目并开始了一个新课程。我想使用向量来存储函数的指针,然后调用它们。获取函数指针并调用它不是问题,但存储它们却是。我尝试将它们存储在向量中,但它一直在清空自己。我试过让向量成为一个类和一个外部的成员,两者都不起作用。我以前从来没有遇到过这个问题,我也不知道为什么会这样。这是我当前的代码:
TickHandler.h:
#include <iostream>
#include <ctime>
#include <vector>
class tickHandler {
public:
void addTickingFunction(void(*func)());
void onTick(void);
std::vector<void(*)()>funcs;
};
extern tickHandler TickHandler;
TickHandler.cpp:
#include "TickHandler.h"
tickHandler TickHandler;
void tickHandler::addTickingFunction(void(*func)())
{
funcs.push_back(func);
std::cout << funcs.size() << std::endl;
}
void tickHandler::onTick()
{
std::cout << funcs.size() << std::endl;
for (int i = 0; i< funcs.size();i++)
{
funcs[i]();
}
}
预期的输出将是:
1
1
但它是:
1
0
任何帮助将不胜感激。
编辑:项目中有很多代码,但该类仅由 2 个函数访问:
TickHandler.addTickingFunction(&physicsTick);
和
TickHandler.onTick();