的imlementation於CentOS 6.5,我有一個類List
像:克++警告有關缺少純虛析
// list.hpp
namespace foo
{
class List
{
public:
virtual int reserveMem (int size) = 0;
virtual int Insert (int val) = 0;
virtual int Find (int val) = 0;
virtual bool Empty() = 0;
};
}
這是共享庫的源代碼的一部分。我可以使用g ++(版本4.4.7)構建整個庫而不會出現任何錯誤或警告消息。所使用的編譯標誌
-g -fPIC -Wall -Wextra -Werror
然後我們有另一個應用程序,它只是包含頭文件,其中包括這個頭文件,並得到:
list.hpp:14: error: 'class List' has virtual functions and accessible non-virtual destructor
的警告信息是有效的。但是當我建立庫時,g ++從不抱怨它。有誰知道爲什麼?
因爲你從來沒有創建List類型的對象,所以我猜 – 2014-12-13 01:32:46
爲你的類定義一個虛擬析構函數,它將消失。虛擬〜列表(){} – 2014-12-13 02:29:34
你的問題的標題是非常誤導,警告與純虛擬析構函數無關 – 2014-12-13 02:51:17