title: QtRemoteObjects autogenerated replica header complaining about undefined vtable
body: <p>Started using QtRO and generated files inherently complain about vtable:</p>
  
  <pre><code>#ifndef REP_REMOTEEXAMPLE_H
  #define REP_REMOTEEXAMPLE_H
  
  // This is an autogenerated file.
  // Do not edit this file, any changes made will be lost the next time it is generated.
  
  #include &lt;QtCore/qobject.h&gt;
  #include &lt;QtCore/qdatastream.h&gt;
  #include &lt;QtCore/qvariant.h&gt;
  #include &lt;QtCore/qmetatype.h&gt;
  
  #include &lt;QtRemoteObjects/qremoteobjectnode.h&gt;
  #include &lt;QtRemoteObjects/qremoteobjectpendingcall.h&gt;
  #include &lt;QtRemoteObjects/qremoteobjectreplica.h&gt;
  
  
  class remoteExampleReplica : public QRemoteObjectReplica
  {
      Q_OBJECT
      Q_CLASSINFO(QCLASSINFO_REMOTEOBJECT_TYPE, "remoteExample")
      Q_CLASSINFO(QCLASSINFO_REMOTEOBJECT_SIGNATURE, "5e40a606abdd95f709878d419edaa735fce25d0d")
  
  public:
      remoteExampleReplica() : QRemoteObjectReplica() { initialize(); }
      static void registerMetatypes()
      {
          static bool initialized = false;
          if (initialized)
              return;
          initialized = true;
      }
  
  private:
      remoteExampleReplica(QRemoteObjectNode *node, const QString &amp;name = QString())
          : QRemoteObjectReplica(ConstructWithNode)
      {
          initializeNode(node, name);
      }
  
      void initialize() override
      {
          remoteExampleReplica::registerMetatypes();
          QVariantList properties;
          properties.reserve(0);
          setProperties(properties);
      }
  
  public:
      virtual ~remoteExampleReplica() {}
  
  
  Q_SIGNALS:
      void Close(QString a);
      void Open(QString b);
  
  public Q_SLOTS:
      void onClosed()
      {
          static int __repc_index = remoteExampleReplica::staticMetaObject.indexOfSlot("onClosed()");
          QVariantList __repc_args;
          send(QMetaObject::InvokeMetaMethod, __repc_index, __repc_args);
      }
      void onOpened()
      {
          static int __repc_index = remoteExampleReplica::staticMetaObject.indexOfSlot("onOpened()");
          QVariantList __repc_args;
          send(QMetaObject::InvokeMetaMethod, __repc_index, __repc_args);
      }
  
  private:
      friend class QT_PREPEND_NAMESPACE(QRemoteObjectNode);
  };
  
  #if (QT_VERSION &lt; QT_VERSION_CHECK(5, 5, 0))
  #endif
  
  
  QT_BEGIN_NAMESPACE
  QT_END_NAMESPACE
  
  
  #endif // REP_REMOTEEXAMPLE_H
  </code></pre>
  
  <p>The issue points to the private constructor. I only included the replica header in my code without really using the remote object as a test run. I've read a lot about vtables how they work and when the linker complains about the vtable but in this case, with the private constructor, I'm not sure what the issue is. <br> Am I missing an implementation of the remote object? Did I not generate the files correctly?</p>
  
  <p>.rep:</p>
  
  <pre><code>class remoteExample
  {
    SIGNAL(Close(QString a));
    SIGNAL(Open(QString b));
    SLOT(onClosed());
    SLOT(onOpened());
  };
  </code></pre>