“虚空价值不应该被忽视,因为它应该是” - Qt / C ++

时间:2013-01-01 10:47:15

标签: c++ qt casting void

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

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创建者说从我正在进行演员的行中实例化...无法弄清楚我做错了什么......任何帮助/提示都是赞赏。

1 个答案:

答案 0 :(得分:0)

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