对象具有与成员函数不兼容的类型限定符

2023-12-21

我的课Game有一个会员EntityManager entityManager_.

班上EntityManager有一个私人成员Player player_和公共 getter 函数Player &EntityManager::getPlayer()返回player_.

班上Player例如具有以下功能void startMoving() and sf::Vector2f getPosition() const.

现在,我可以毫无问题地打电话entityManager_.getPlayer().startMoving();从我的内心Game类,但是当我尝试使用以下代码来获取玩家的位置时:

sf::Vector2f playerPosition = entityManager_.getPlayer().getPosition();

我收到以下错误:

智能感知:

EntityManager Game::entityManager_

Error: the object has type qualifiers that are not compatible with the member function

object type is: const EntityManager

Output:

game.cpp(261): error C2662: 'EntityManager::getPlayer' : cannot convert 'this' pointer from 'const EntityManager' to 'EntityManager &'
          Conversion loses qualifiers

我尝试删除const来自玩家的 getPosition 函数,但没有任何改变。

我知道这可能与const但我不知道要改变什么!有人可以帮我吗?


错误信息非常明确:

game.cpp(261): error C2662: 'EntityManager::getPlayer' : 
               cannot convert 'this' pointer from 'const EntityManager' to 
                                                  'EntityManager &'
          Conversion loses qualifiers

在您调用的上下文中getPlayer对象/引用是const。您不能在 a 上调​​用非常量成员函数const对象或通过const引用或指针const.

因为错误指的是this,最可能的原因是这段代码位于一个成员函数内,该函数是const.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对象具有与成员函数不兼容的类型限定符 的相关文章

随机推荐

  • 如何使用 Promise 等待 observable 的每个值

    假设我有这个可观察的 const obs new Observable observer gt observer next 0 25 observer next 0 75 observer next new ArrayBuffer 100
  • 用户体验问题:“严重删除”或“垃圾”更好

    我正在开发一个应用程序 允许用户管理一些单独的数据点 我的用户想要做的事情之一是 删除 但这意味着什么 对于 Web 应用程序来说 向用户提供严重删除或使用 垃圾 系统的选项是否更好 在 严重删除 下 很想知道是否有更好的名称 您单击 删除
  • 使用空初始化器列表直接初始化

    struct X X std cout lt lt default ctor lt lt std endl int main X 这打印出来 default ctor 这是有道理的 因为空大括号值初始化了对象 我认为 然而 struct X
  • 即使视口元标记中的分辨率宽度为 1536,ipad 3 设备宽度是否始终为 768?

    我正在尝试了解 ios 设备的视口元标记 我创建了一个测试页面 在其中插入了一张 862 像素宽的图像 所以我的视口元标记为 然而在ipad 3上 分辨率宽度为1536像素 并将视口设置为与ipad 3相同的可见区域大小 862px图像被放
  • Intellij 工作表和其中定义的类

    我正在学习 Coursera 的 Scala 函数式编程课程 并发现工作表 repl 出现了奇怪的行为 在课程中 包含以下代码的工作表应在右侧给出以下结果 object rationals val x new Rational 1 2 gt
  • 获取对象为 null 的对象的类型?

    以下代码可以编译 但为什么会出现运行时异常 String b null System out println b getClass 我得到的错误是 java lang NullPointerException 即使对象设置为 null 如何
  • Cocos2d播放2个不同的背景音乐文件或循环播放效果

    我需要为场景提供背景音乐 为角色提供背景音乐 但是当角色做出某些动作时我必须停止它 对于这个问题我必须选择 同时播放2个背景音乐文件 并停止与角色相关的背景音乐文件 循环播放音效 这 2 种中哪一种是可能且推荐的 Regards 你说你正在
  • 非交互式 bash 中的别名[重复]

    这个问题在这里已经有答案了 我想让别名在非交互式 bash 中工作 我运行以下命令 bash c alias toto ls shopt s expand aliases alias toto ls toto 我得到以下信息 bash to
  • SeekBar - 使用上面的 TextView 显示进度

    我正在尝试 肯定很简单 任务 让 TextView 跟随进度条上的拇指并在 TextView 中显示进度 问题是 对于小于最大值一半的进度值 TextView 会向拇指左侧漂移 越来越远离正确位置 反之亦然 当进度值大于最大值一半时 Tex
  • 如何在Java中将getRGB(x,y)整数像素转换为Color(r,g,b,a)?

    我有从中获得的整数像素getRGB x y 但我不知道如何将其转换为 RGBA 格式 例如 16726016应该Color 0 200 0 255 有小费吗 如果我猜对了 你得到的是一个无符号整数的形式0xAARRGGBB so int b
  • JNI - java ArrayList 转换为 c++ std::string*

    我正在尝试使用 C 中的 JNI 进行数据转换 我在工作中遇到了麻烦java s 数组列表 of strings 因为我无法将这样的数据转换为c vector or 标准 字符串 我想知道如果可能的话 如何在不牺牲太多性能的情况下进行这种转
  • 打开本地html页面-java

    在我的 java 控制台应用程序之一中 我正在动态创建 html 页面 现在我想使用默认的网络浏览器打开它 所以你们能帮我解决这个问题吗 Swing java awt Desktop getDesktop browse uri SWT Pr
  • 如何使用C++ Expects 运算符?

    我正在使用 C 启动一个项目 除了少数学校项目之外 我之前从未使用过 C 远远超出了我现在正在处理的范围 我的目标是尽力遵循C 核心指南 https isocpp github io CppCoreGuidelines CppCoreGui
  • 嵌套资源的 Link_to 路由问题

    我有两个模型 作业 和 问题 一份工作有很多问题 而问题又属于一份工作 我已经在模型中设置了资源以及路线 我在尝试 link to questions index 页面上问题控制器的 Show 方法时遇到问题 我的 rake 路线说路径应该
  • selenium 获取元素类和文本

    我无法从以下 html 页面找到 test1 test2 dd class class subclass test1 test2 test3 dd 尝试过 dd contains class class subclass and conta
  • ASP.NET MVC 中的 Google API 图表

    我正在使用 google api 创建一个简单图表 AllowAnonymous public JsonResult PieChart return Json State Total GA 50 AL 30 JsonRequestBehav
  • 类构造函数默认为 void 吗?

    我一直在阅读 C 中的类构造函数 示例显示重载类构造函数 而且他们所有人都没有void关键字并且它们都没有返回值 e g public Class myClass public myClass public myClass int id o
  • Apache Camel AMQP - ActiveMQ AMQP 标头不匹配值 1,期望 0

    我正在尝试创建一个通过 AMQP 与 ActiveMQ 集成的 Apache Camel 应用程序 我一直在按照提供的 骆驼示例 spring jms 项目 它通过标准 TCP 连接 但我已修改为使用我的独立 ActiveMQ 5 8 安装
  • 将 Google Cloud Build 连接到 Google Cloud SQL

    Google Cloud Run 允许使用 Cloud SQL 但是 如果您在 Google Cloud Build 中构建容器时需要 Cloud SQL 该怎么办 那可能吗 背景 我有一个 Next js 项目 它在 Google Clo
  • 对象具有与成员函数不兼容的类型限定符

    我的课Game有一个会员EntityManager entityManager 班上EntityManager有一个私人成员Player player 和公共 getter 函数Player EntityManager getPlayer