C++ 二进制'=';:未找到接受类型为“的右侧操作数”的运算符;按钮*”;

C++ 二进制'=';:未找到接受类型为“的右侧操作数”的运算符;按钮*”;,c++,C++,我有一门菜单课,是单人课。它现在将有三个按钮对象,m_Load,m_Save,m_New。我在Init()方法中调用它们的构造函数,如下所示: void Menu::Init() { Menu::m_Load = new Button(L"../Data/png/load.png"); Menu::m_Save = new Button(L"../Data/png/save.png"); Menu::m_New = new Button(L"../Data/png/new

我有一门菜单课,是单人课。它现在将有三个按钮对象,m_Load,m_Save,m_New。我在Init()方法中调用它们的构造函数,如下所示:

void Menu::Init()
{
    Menu::m_Load = new Button(L"../Data/png/load.png");
    Menu::m_Save = new Button(L"../Data/png/save.png");
    Menu::m_New = new Button(L"../Data/png/new.png");
}
它们在Menu.h文件中定义为

class Menu : public Singleton<Menu>
{
    friend class Singleton<Menu>;

//snip
private:
    Menu();
    Button m_Load;
    Button m_Save;
    Button m_New;
};
class菜单:公共单例
{
朋友班单身;
//剪断
私人:
菜单();
按钮m_加载;
按钮m_保存;
按钮m_New;
};

该Init方法给出了标题中描述的编译器错误。为什么?

您试图将指向按钮的指针分配给按钮。 将按钮成员声明为指针

Button *m_Load;

您正在尝试将指向按钮的指针指定给按钮。 将按钮成员声明为指针

Button *m_Load;