gpt4 book ai didi

c++ - 如何将结构添加到来自另一个类的 vector ?

转载 作者:行者123 更新时间:2023-12-04 07:25:38 24 4
gpt4 key购买 nike

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

front() called on empty vector.


我的代码如下:
全局文件
struct RenderStruct {
std::function<void()> testfunction1;
std::function<void()> testfunction2;
};
static std::vector<RenderStruct> RenderQueue;
测试.h
class test
{
public:
static void add_to_queue();
};
测试文件
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});
};
主程序
int main()
{
test::add_to_queue();
auto front = RenderQueue.front();

front.testfunction();
front.testfunction2();
};

最佳答案

编译单元(cpp 文件)之间不共享静态链接变量。
使您的变量非静态,将其标记为 extern,然后从一个 cpp 文件中导出它(通过在那里声明它而没有 extern)。

关于c++ - 如何将结构添加到来自另一个类的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68233079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com