warning C4150: deletion of pointer to incomplete type 'xxx'; no destructor called 的解決辦法

下面的代碼會導致這個問題:

class XX;

 

XX *pX = new XX();

delete pX;                  // Warning C4150

 

以上的代碼會導致這個C4150警告, 原因就是你的類聲明不完整, 編譯器只是把A加入到符號表並標記A爲一個class,編譯器並不知道類的大小,成員函數等其他信息。

 

如果只是聲明指針, 在特定平臺下指針的大小是確定的所以沒有問題。 但是如果調用delete來刪除的時候,

就需要知道它的信息了, 比如就是這個類的析構函數和這個類在整個內存塊中的大小。

 

解決方法就是把聲明瞭class XX具體信息的頭文件加上去。

發佈了15 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章