首页 > 解决方案 > 更改对象属性

问题描述

我有一堂课

class Menu {
public:
    vector<MenuItem> currentMenu;

    void init();

    void show();

    void trigger();
};

class MenuItem {
private:
    std::string text;
    Menu link;

public:
    MenuItem(Menu &menu, string &text);

    string getText();

    void onEnter();
};

在 MenuItem 构造函数中,我传递对 Menu 的引用并将其存储在 MenuItem 属性(菜单链接;)中。并且当尝试清除菜单属性(向量 currentMenu;)

void MenuItem::onEnter() {
    this->link.currentMenu.clear();
}

没变化。如何更改菜单属性?

标签: c++c++11

解决方案


MenuItem 中的 Menu 变量应该是 Menu& 类型。当前存储 Menu 对象时,它仅存储 Menu 的副本。


推荐阅读