相关疑难解决方法(0)

指针指针不支持C++多态

我正在寻找一种清洁指针的正确方法.这里是示例代码:

class Parent {
   protected:
      int m_Var;
   public:
      Parent() : m_Var(0) {}
      virtual ~Parent() {}
      void PubFunc();
};

class Child : public Parent {
   protected:
      bool m_Bool;
   public:
      Child() : m_Bool(false) {}
      virtual ~Child() {}
      void ChildFunc();
};

void RemoveObj(Parent **ppObj)
{
   *ppObj->PubFunc();
   delete *ppObj;
   ppObj = NULL;
}

int main()
{
   Parent* pPObj = NULL;
   Child*  pCObj = NULL;
   pPObj = new Parent();
   pCObj = new Child();

   RemoveObj(&pPObj);
   RemoveObj(&pCObj); // This is line 33
   return 1;
}
Run Code Online (Sandbox Code Playgroud)

但是编译器给出了错误:

classes.cpp:33: …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism pointers

2
推荐指数
1
解决办法
1583
查看次数

标签 统计

c++ ×1

pointers ×1

polymorphism ×1