如何将结构添加到另一个类的向量中



我是一名学生,正在尝试构建一个项目。我的程序在访问矢量时抛出错误。向量的大小是1,但当我调用RenderQueue.front时,它会抛出一个错误:

front((在空向量上调用。

我的代码如下:

global.h

struct RenderStruct {
std::function<void()> testfunction1;
std::function<void()> testfunction2;
};
static std::vector<RenderStruct> RenderQueue;

测试.h

class test
{
public:
static void add_to_queue();
};

测试.cpp

void test::add_to_queue()
{
std::function<void()> testfunction1 = [&]()
{
std::cout << "First Function Working" << std::endl;
};
std::function<void()> testfunction2 = [&]()
{
std::cout << "Second Function Working" << std::endl;
};
RenderQueue.push_back({testfunction1, testfunction2}); 
};

主要.cpp

int main()
{
test::add_to_queue();
auto front = RenderQueue.front();
front.testfunction();
front.testfunction2();
};
编译单元(cpp文件(之间不共享静态链接变量。

使您的变量非静态,将其标记为extern,然后从一个cpp文件中导出(通过在那里声明不带extern(。

相关内容

最新更新