foo.h中:麻煩添加元素爲std ::地圖
class Foo
{
public:
Foo(void);
~Foo(void);
void AddScreen(std::string name, ScreenBase &screenToAdd);
private:
std::map<std::string, ScreenBase> m_screens;
};
Foo.cpp中:
void Foo::AddScreen(string name, ScreenBase &screenToAdd)
{
m_screens[name] = screenToAdd;
}
最後行創建一個編譯錯誤C2784:「布爾的std ::操作者<(常量的std :: _樹< _Traits> &,常量的std :: _樹< _Traits> &) ':不能推導出模板參數的' 常量的std ::
註釋掉最後一行並且編譯成功。
我是新來的c + +(來自託管語言),不知道爲什麼我不能用這個填充地圖。
任何洞察力是讚賞。謝謝。
ScreenBase.h :
#pragma once
class ScreenBase
{
public:
ScreenBase();
~ScreenBase();
virtual void Update(float tt, float dt);
virtual void Render();
};
ScreenBase.cpp:
#include "pch.h"
#include "ScreenBase.h"
ScreenBase::ScreenBase(void)
{
}
ScreenBase::~ScreenBase(void)
{
}
void ScreenBase::Update(float tt, float dt)
{
}
void ScreenBase::Render()
{
}
請向我們展示ScreenBase類 –
添加的screenbase代碼。 –
std :: map< - 這告訴我第二個參數將包含ScreenBase的實例,它是一個抽象類...我希望我沒有錯誤:) –