代码之家  ›  专栏  ›  技术社区  ›  sonicbhoc

我可以使用动态分配的类中的函数删除该类吗?

  •  2
  • sonicbhoc  · 技术社区  · 15 年前

    我正在为一场比赛写一个州经理。我已经掌握了我想怎么做的大部分逻辑。 我希望状态(将是类)在StateManager类的堆栈中处理。每个状态都有暂停功能,堆栈将是STL堆栈。

    国家完成了它的工作。 在其update函数中,当它发现其已完成时,它将调用一个函数来清除状态。 此函数将处理任何需要绑定的即时松散端(如果有),从状态管理器堆栈调用pop函数,并删除自身。

    4 回复  |  直到 9 年前
        1
  •  6
  •   seaotternerd    9 年前

    请参见C++-FAQ-lite: Is it legal (and moral) for a member function to say delete this?

    只要你小心,一个物体自杀是可以的(删除这个)。

        3
  •  0
  •   Dolphin    15 年前

    当然:

    void cleanup(){
     delete this;
    }
    

    当然,有很多事情你需要确定(不是最不重要的是,如果你试图用在堆栈上创建的实例来做,你会有不好的地方)。

        4
  •  0
  •   Stephen Doyle    15 年前

    对- delete this; 这是有效的。只需确保这是在执行删除操作的函数中完成的与类相关的最后一件事。

    推荐文章