0

对于我想要开发的一些插件,我有这个简单的“接口”,它看起来像:

class TestPluginBase : public QObject
{
  Q_OBJECT
public:
    TestPluginBase();
    qint64 returnType(){return PluginType;}

protected:
    qint64 PluginType;
};

以及其他一些实现“接口”的类,例如:

class TestPluginONE : public TestPluginBase
{
public:
    TestPluginONE() {this->PluginType =1;}
    qint64 returnType() {return this->PluginType;}
};

然后我有另一个函数假设加载不同的插件:

qint64 TestPluginManager::loadPlugin(QObject *_plugin)
{

  TestPluginBase *Plugin = qobject_cast<TestPluginBase *>(_plugin);

  if ( !Plugin )
        return 0;

    emit sigPluginLoaded(Plugin);
    return Plugin->returnType();

}

但是在构建它时,我得到void value not ignored as it ought to be并且 Qt 创建者说从我正在做我的演员的行中实例化......无法弄清楚我做错了什么......感谢任何帮助/提示。

4

1 回答 1

0

将我的“接口”中的构造函数修改为TestPluginBase() {this->PluginType =0;}并且代码正在编译没有错误..解决了我的问题,但不知道为什么。

于 2013-01-01T11:04:50.963 回答