C++ 将类插入映射容器

2024-04-19

我有一个 C++ 地图,我希望输入我的类作为值,并输入一个字符串作为键。 当我尝试这样做时,出现错误'Scene_Branding' : illegal use of this type as an expression我非法使用这种类型作为表达式,但我似乎无法找出原因。这是一些代码。

 string CurrentScene = "Scene_Branding";
 map<string, Scene> Scenes;
 Scenes.insert(std::make_pair("Scene_Branding", Scene_Branding));  //<-- Illegal Error parameter 2

这是场景品牌标题..

#ifndef Scene_Branding_H
#define Scene_Branding_H

#include "Scene.h"
#include <iostream>
#include <string>


class Scene_Branding : Scene
{
public:
 Scene_Branding();
 ~Scene_Branding();
 void Draw();
};

#endif

这是场景标题..

#ifndef Scene_H
#define Scene_H

#include <iostream>
#include <string>

class Scene
{
public:
 Scene();
 ~Scene();
 virtual void Draw();

};

#endif

这是cpp 文件。

场景cpp.

#include "Scene.h"

Scene::Scene()
{

}
Scene::~Scene()
{

}
void Scene::Draw(){
 std::cout << "Hey";
}

Scene_Branding cpp

#include "Scene_Branding.h"

Scene_Branding::Scene_Branding()
{

}

Scene_Branding::~Scene_Branding()
{

}

void Scene_Branding::Draw()
{
 std::cout << "Drawing from Scene_branding";
}

首先,不要将对象本身存储在映射中,而是存储指向对象的指针。

其次,您需要将 Scene_Branding 的实例提供给 std::make_pair,而不是类本身。

编辑: 以下是存储指针的方法:

 string CurrentScene = "Scene_Branding";
 map<string, Scene*> Scenes;
 Scenes.insert(std::make_pair("Scene_Branding", new Scene_Branding()));

但是,既然你问了这类问题,我建议你阅读一本好的 C++ 书籍,以进一步掌握指针等概念。

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

C++ 将类插入映射容器 的相关文章

随机推荐

  • IMAP fetch() 返回命令错误:BAD [b' 命令参数错误。 12']

    我无法在网上找到示例 故障排除提示 并且不太确定我是否正确解释了文档 任何帮助将不胜感激 我正在连接到电子邮件服务器 并且想要阅读电子邮件主题和正文 我首先像这样建立连接 import imaplib c imaplib IMAP4 SSL
  • 如何在 Ruby 中使用模块重写静态类方法?

    module Imodule end class Some include Imodule def self imethod puts original end end Some imethod gt overrided 如何创建一个将覆盖
  • acts_as_taggable_on:如何优化查询?

    I use acts as taggable on在我当前的 Rails 项目中 在一个概述页面上 我显示了对象及其关联标签的索引 我使用以下代码 class Project lt ActiveRecord Base acts as tag
  • “Windows”键作为快捷键的一部分

    I very often open a console window while doing my development Usually Win R gt cmd gt enter However Windows also lets yo
  • 从 Android 中的“我的应用程序”发送彩信

    我想将彩信从我的应用程序发送到特定号码 我已经搜索并找到了这段代码 但我不知道这段代码是否是我需要的 我的问题是 任何人都可以向我解释这段代码 我是彩信初学者 另外 我认为这段代码是让用户从我的应用程序发送彩信 而不将其移动到本机消息收件箱
  • OpenCV GPU Farneback 光流在多线程中表现不佳

    我的应用程序使用 Opencv GPU 类gpu FarnebackOpticalFlow计算输入视频的一对连续帧之间的光流 为了加速该过程 我利用 OpenCV 的 TBB 支持在多线程中运行该方法 然而 多线程性能并不像单线程那样 为了
  • 如何在 iOS 中检查产品是否已使用应用内购买进行购买?

    我有一个应用程序集成在其中的应用程序 在我的应用程序中 我有两个用于付费应用程序购买和订阅的按钮 当用户点击 购买 时 它会检查苹果验证并购买产品 这可以正常工作 但是当购买产品时 我的购买按钮应该更改为 完成 并且当应用程序下次运行时 该
  • 同时对两个 arrayList 进行排序

    假设我有两个 ArrayList name Four Three One Two num 4 3 1 2 如果我这样做 Arrays sort num 那么我有 name Four Three One Two num 1 2 3 4 有什么
  • 撤消 git merge 到远程分支

    长话短说 我正在处理一个远程分支 my remote branch 但它在 CI 中的一些测试失败了 我被告知要重新建立 master 来解决这个问题 我做了以下事情 git checkout master git pull git che
  • R:用 gsub 替换“+”字符

    这个问题似乎完全微不足道 但我不明白为什么它不起作用 我只是想将涉及 运算符的字符变量替换为不包括 运算符的单个值 由于某种原因 gsub 和 sub 函数替换了数值但保留了运算符 关于如何克服这个问题有任何提示吗 非常感谢 data lt
  • 是否可以列出已集成到工作区的变更列表?

    实际上 是否可以获得已集成到工作区但未提交的更改列表的列表 关于什么p4 resolved 它不会告诉您确切的更改列表 但它会告诉您哪些文件版本 然后可以很容易地追溯到更改列表
  • Django Reverse 未找到参数“()”和关键字参数“{}”

    嗨 我有一个令人恼火的问题 我有一个像这样的网址模式 mproject myapp urls py url r project P
  • 如何设置visionOS中WindowGroup的大小?

    我想设置 a 的尺寸WindowGroup在visionOS上运行时为特定大小 在 iOS 和 maOS 上我们有 defaultSize对此的修饰符 当为visionOS构建时 Xcode提供了一个稍微不同的修饰符 带有一个称为深度的附加
  • 选择不同的返回重复项

    我有以下查询 SELECT DISTINCT TK TICKETID TK DESCRIPTION TK CREATIONDATE TK REPORTEDBY TK OWNER WF ASSIGNCODE FROM ticket TK IN
  • 如何在c#中创建一个完美的Singleton类?

    我想用 Singleton 类存储一些数据 据我研究 单例类只能实例化一次 但这对我不起作用 有人可以更正我的代码吗 public class MvcApplication System Web HttpApplication Single
  • 在 Android 中从 Mp3 检索元数据的最佳方法

    我一直在为 Android 开发一个小型媒体播放器应用程序 我在从音乐文件检索元数据时遇到一些问题 我一直在使用媒体元数据检索器 但事实证明这是相当麻烦的 有谁知道更好的方法来解决这个问题 如果是这样 如何实现这样的方法 我用过JAudio
  • 帕斯卡套接字

    如何在 Pascal 中使用网络套接字 这是一个来自的例子http www bastisoft de programmierung pascal pasinet html http www bastisoft de programmieru
  • 滚动事件监听器:空 While 循环,它是如何工作的以及为什么?

    这个问题是参考这个帖子 https stackoverflow com questions 52025615 vanilla js change active state of links when scrolling refactorin
  • 使用 .htaccess 重定向主域但不重定向某些子域

    目前我有 Redirect 302 http www example com 虽然我仍然希望发生此重定向 但如果他们说 我不希望它重定向他们foo mydomain com或该子域上的任何其他页面 我怎样才能做到这一点 要以这种方式更具体
  • C++ 将类插入映射容器

    我有一个 C 地图 我希望输入我的类作为值 并输入一个字符串作为键 当我尝试这样做时 出现错误 Scene Branding illegal use of this type as an expression我非法使用这种类型作为表达式 但