我有3个类构建一个继承链。其中两个类是纯粹的抽象类(IProxy和IDataProxy),第三个类真的“做这个工作”(DataProxy)。这些类下面(仅示出了这里CON /析构函数):带继承析构函数的警告C4710(非内联)
IProxy:
class __declspec(dllexport) IProxy
{
public:
IProxy() {}
virtual ~IProxy() {}
};
IDataProxy:
class __declspec(dllexport) IDataProxy : public IProxy
{
public:
IDataProxy() {}
virtual ~IDataProxy() {}
};
DataProxy部首:
class __declspec(dllexport) DataProxy : public IDataProxy
{
public:
DataProxy();
virtual ~DataProxy() {}
};
DataProxy执行文件:
DataProxy::DataProxy() : m_operationType(eUnknown)
{}
当我编译的类DataProxy与Microsoft C++编译器(版本12.00.8804)我得到以下警告:
warning C4710: function 'virtual __thiscall IDataProxy::~IDataProxy(void)' not inlined
warning C4710: function 'virtual __thiscall IDataProxy::~IDataProxy(void)' not inlined
warning C4710: function 'virtual __thiscall DataProxy::~DataProxy(void)' not inlined
warning C4710: function 'virtual __thiscall DataProxy::~DataProxy(void)' not inlined
我真的不知道这些警告从COM。我从来没有告诉编译器内联任何东西。我不知道如何摆脱这些警告。
任何人都可以对这些警告有所了解吗?非常感谢!
最好的问候, 奥利弗
IDataProxy是一个纯粹的抽象类,应该定义一个接口。我真的不想要一个纯粹的抽象类的cpp文件,是吗? 为什么警告不会为IProxy类发生? – Baldewin 2011-03-07 12:58:06
'IProxy ::〜IProxy'什么都不做。 'IDataProxy ::〜IDataProxy'调用'IProxy ::〜IProxy',这是一个DLL导出,因此不能被优化。 – MSalters 2011-03-07 15:42:14
那么你为什么要声明DLL导出,当它包含的是两个内联函数?如果你想让它们在DLL中,那么必须合理地存在一些.cpp文件。 – 2011-03-07 16:10:09