ninsun |
2017-01-18 11:05 |
提供接口的时候能否只提供一个头文件而不用提供lib库
一般情况下,我们在设计C++接口的时候,并不需要提供lib库的,例如以下的最简单的接口定义:
- class WEBAPPSERVER_EXPORT ServiceInterface
{ public: virtual QString name() = 0; }
但是,当我们让这个接口继承了某个类,并且该接口并不是纯虚的时候……情况似乎就不一样了……
- class WEBAPPSERVER_EXPORT ServiceInterface : public QObject
{ Q_OBJECT public: virtual QString name() = 0; }
为了使用qobject_cast或Qt的元信息则必须有Q_OBJECT宏。 那么在这种情况下,如果不提供lib库并在实现该接口的工程中包含该lib,就会在编译的时候就会报错…… 那么,有没有办法避免这种情况?如果继承的类是我自己写的也就罢了,但是我继承的是QObject啊……
|
|