的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