当前位置: 首页 > 知识库问答 >
问题:

无法回推向量中的唯一指针

毛缪文
2023-03-14

我在这个代码上有一个错误:

void Game::changeState(gameState type) // gameState is an enum
{
   if (!states.empty()) // deleting the last state
   {
       states.back()->clean();
       states.pop_back();
   }

   switch(type)
   {
       case editorState:
       {
           states.push_back(std::move(std::unique_ptr<EditorState> (new EditorState)));
           states.back()->init();
           break;
       }
       case menuState:
       {
           states.push_back(std::move(std::unique_ptr<MenuState> (new MenuState)));
           states.back()->init();
           break;
       }

   }
}

向量:

std::vector<std::unique_ptr<GameState>> states;

错误消息:

c:\ program files(x86)\ code blocks \ mingw \ bin..\ lib \ gcc \ mingw 32 \ 4 . 7 . 1 \ include \ c \ bits \ unique _ ptr . h | |在' void std::default_delete的实例化中

我上面的代码工作时,我使用默认指针,但当我使用unique_ptr它给我上面的错误…

编辑:这是游戏。h:http://pastebin.com/DiBbXrC6和游戏状态:http://pastebin.com/JD3VrktJ

共有1个答案

岳君之
2023-03-14

当使用unique_ptr时,您需要显式定义T,您可以在其中声明unique_ptr

这将摆脱错误:将“sizeof”无效应用于不完整的类型“GameState”

你可以在这里找到更详细的答案。

 类似资料:
  • 用户表: 图书目录: 用户模型中的关系: 默认情况下,外键指向主键id。如何使其指向唯一的? 如果只有,是主键,我们可以用第三个参数传递它,并覆盖属性:

  • 在print语句中:(假设整数大小为4字节) 让arr的内存位置为1000 arr 1——给出1016(即下一行内存) 我理解了逻辑,但我无法理解编译器如何将 arr标识为“指向4整数数组的指针”,并且 即使在增量之前两者都指向相同的地址(1000)

  • 我正在开发一个应用程序,它要求用户先登录(电子邮件/密码),然后才能进入应用程序的其余部分。 我实现了指纹扫描,代码正确地验证了指纹是设备授权指纹列表中注册的指纹之一。 我的问题是,我希望能够将这两种情况关联起来,比如用户使用电子邮件/密码登录,然后进入一个屏幕,在那里他可以将is指纹与他刚刚登录的帐户关联起来,然后在将来,每当他使用应用程序上的指纹登录时,该应用程序将向服务器发送某种表示指纹的唯

  • 但我想使用一个指针,而不是一个简单的变量。能给我点启示吗? 谢谢

  • 问题内容: 为什么在下面的代码中,使用类变量作为方法指针会导致未绑定的方法错误,而使用普通变量则可以正常工作: 完整错误: 问题答案: 我喜欢从下至上查看这种行为。 Python中的函数充当“描述符对象”。因此,它具有一种方法。 对具有此类方法的类属性的读取访问将“重定向”到该方法。对类的属性访问以方式执行,而对实例的属性访问则映射到。 函数的方法的任务是将函数包装在一个方法对象中,该对象将包装参

  • 我有一个带有私有属性的类,它是一个向量。做getter函数的最佳方法是什么? 返回整个向量: