<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Invalid use of incomplete Type (in Qt)]]></title><description><![CDATA[<p>Hallo!<br />
Ich arbeite im Zuge meines Studiums an einem Programmierpraktikum (Sudoku graphisch in Qt) und sitze seit 3 Tagen schon an einem Fehler den ich einfach nicht korrigieren kann (und verstehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
<p>Ich habe bereits gesucht und natürlich dazu auch schon Treffer gefunden jedoch verstehe ich schlichtweg die Antwort nicht!<br />
Das Problem liegt wsl auch darin, dass alles funktioniert hatte bis ich irgendetwas ändern wollte und dann nix mehr ging <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Zu meinem Projekt: (gliedert sich auf in main.cpp, sudoku.cpp, fehler.cpp, und gewonnen.cpp ,die Headerfiles: sudoku.h, fehler.h,gewonnen.h sowie die .ui-files: sudoku.ui, fehler.ui, gewonnen.ui)</p>
<p>main.cpp<br />
--------</p>
<pre><code class="language-cpp">#include &lt;QtGui/QApplication&gt;
#include &lt;sudoku.h&gt;
#include &lt;fehler.h&gt;
#include &lt;gewonnen.h&gt;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Sudoku w;
    w.show();

    return a.exec();
}
</code></pre>
<p>sudoku.cpp<br />
----------</p>
<pre><code class="language-cpp">#include &lt;sudoku.h&gt;
#include &lt;ui_sudoku.h&gt;
#include &lt;fehler.h&gt;
#include &lt;gewonnen.h&gt;

Sudoku::Sudoku(QWidget *parent): QMainWindow(parent), ui(new Ui::Sudoku)
{
 ui-&gt;setupUi(this);
 /---/
}

// andere Funktionen deklariert

Sudoku::~Sudoku()
{
 delete ui;
}

sudoku.h
--------

[cpp]
#ifndef SUDOKU_H
#define SUDOKU_H

#include &lt;QMainWindow&gt;
#include &lt;QtGui&gt;

namespace Ui {
    class Sudoku;
}

class Sudoku : public QMainWindow
{
    Q_OBJECT

public:
    explicit Sudoku(QWidget *parent = 0);
    ~Sudoku();

private slots:
    // hab ich jetzt wegelassen, alle flt aus sudoku.cpp

private:
    Ui::Sudoku *ui;
    std::vector&lt;std::vector&lt;int&gt; &gt; A;
    QGridLayout *lay;

};

#endif // SUDOKU_H
</code></pre>
<p>fehler.h<br />
--------</p>
<pre><code class="language-cpp">#ifndef FEHLER_H
#define FEHLER_H

#include &lt;QDialog&gt;

namespace Ui {
    class fehler;
}

class Sudoku : public QDialog
{
    Q_OBJECT

public:
    explicit fehler(QWidget *parent = 0);
    ~fehler();

private:
    Ui::Sudoku *uif;

};

#endif // FEHLER_H
</code></pre>
<p>gewonnen.h sieht bis auf die Namensänderungen genauso aus!</p>
<p>Wie gesagt die Fehlermeldung sieht wie folgt aus:</p>
<p>in constructor 'Sudoku::Sudoku(QWidget*)<br />
- invalid use of incomplete type 'struct Ui::Sudoku'<br />
- forward declaration of 'struct Ui::Sudoku'</p>
<p>Vielen Dank für eure Mühe, ich hoffe ihr könnt mir bei der Fehlersuche helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297375/invalid-use-of-incomplete-type-in-qt</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 11:02:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297375.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Dec 2011 10:36:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 10:40:11 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich arbeite im Zuge meines Studiums an einem Programmierpraktikum (Sudoku graphisch in Qt) und sitze seit 3 Tagen schon an einem Fehler den ich einfach nicht korrigieren kann (und verstehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
<p>Ich habe bereits gesucht und natürlich dazu auch schon Treffer gefunden jedoch verstehe ich schlichtweg die Antwort nicht!<br />
Das Problem liegt wsl auch darin, dass alles funktioniert hatte bis ich irgendetwas ändern wollte und dann nix mehr ging <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Zu meinem Projekt: (gliedert sich auf in main.cpp, sudoku.cpp, fehler.cpp, und gewonnen.cpp ,die Headerfiles: sudoku.h, fehler.h,gewonnen.h sowie die .ui-files: sudoku.ui, fehler.ui, gewonnen.ui)</p>
<p>main.cpp<br />
--------</p>
<pre><code class="language-cpp">#include &lt;QtGui/QApplication&gt;
#include &lt;sudoku.h&gt;
#include &lt;fehler.h&gt;
#include &lt;gewonnen.h&gt;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Sudoku w;
    w.show();

    return a.exec();
}
</code></pre>
<p>sudoku.cpp<br />
----------</p>
<pre><code class="language-cpp">#include &lt;sudoku.h&gt;
#include &lt;ui_sudoku.h&gt;
#include &lt;fehler.h&gt;
#include &lt;gewonnen.h&gt;

Sudoku::Sudoku(QWidget *parent): QMainWindow(parent), ui(new Ui::Sudoku)
{
 ui-&gt;setupUi(this);
 /---/
}

// andere Funktionen deklariert

Sudoku::~Sudoku()
{
 delete ui;
}

sudoku.h
--------

[cpp]
#ifndef SUDOKU_H
#define SUDOKU_H

#include &lt;QMainWindow&gt;
#include &lt;QtGui&gt;

namespace Ui {
    class Sudoku;
}

class Sudoku : public QMainWindow
{
    Q_OBJECT

public:
    explicit Sudoku(QWidget *parent = 0);
    ~Sudoku();

private slots:
    // hab ich jetzt wegelassen, alle flt aus sudoku.cpp

private:
    Ui::Sudoku *ui;
    std::vector&lt;std::vector&lt;int&gt; &gt; A;
    QGridLayout *lay;

};

#endif // SUDOKU_H
</code></pre>
<p>fehler.h<br />
--------</p>
<pre><code class="language-cpp">#ifndef FEHLER_H
#define FEHLER_H

#include &lt;QDialog&gt;

namespace Ui {
    class fehler;
}

class Sudoku : public QDialog
{
    Q_OBJECT

public:
    explicit fehler(QWidget *parent = 0);
    ~fehler();

private:
    Ui::Sudoku *uif;

};

#endif // FEHLER_H
</code></pre>
<p>gewonnen.h sieht bis auf die Namensänderungen genauso aus!</p>
<p>Wie gesagt die Fehlermeldung sieht wie folgt aus:</p>
<p>in constructor 'Sudoku::Sudoku(QWidget*)<br />
- invalid use of incomplete type 'struct Ui::Sudoku'<br />
- forward declaration of 'struct Ui::Sudoku'</p>
<p>Vielen Dank für eure Mühe, ich hoffe ihr könnt mir bei der Fehlersuche helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2160998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2160998</guid><dc:creator><![CDATA[Nille88]]></dc:creator><pubDate>Mon, 26 Dec 2011 10:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 10:38:59 GMT]]></title><description><![CDATA[<p>kleiner Nachtrag:</p>
<p>Sollte es etwas mit Inkludierung zu tun haben:</p>
<p>die files: fehler.cpp und gewonnen.cpp inkludieren stehts &lt;ui_fehler.h&gt; bzw &lt;ui_gewonnen.h&gt; sowieso &lt;fehler.h&gt; bzw. &lt;gewonnen.h&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2160999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2160999</guid><dc:creator><![CDATA[Nille88]]></dc:creator><pubDate>Mon, 26 Dec 2011 10:38:59 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 10:50:34 GMT]]></title><description><![CDATA[<p>Dein Compiler kennt an der Fehlerstelle nur die Vorwärtsdeklaration von Ui::Sudoku, nicht aber die Klassendefinition. Entweder es fehlt der entsprechende Header, oder du hast den Klassennamen nicht überall gleich geschrieben (groß/klein).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161003</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 26 Dec 2011 10:50:34 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:02:03 GMT]]></title><description><![CDATA[<p>Ok, also das hab ich überprüft da stimmt alles!</p>
<p>Nur damit ich das richtig verstehe, die Forward-Deklaration ist dann in der sudoku.h-datei: Ui::Sudoku *ui; oder?<br />
Oder ist das die Klassendefinition?</p>
<p>Wie gesagt ich bin kein Informatiker sondern habe außer einem Programmierkurs in c++ nie objektorientiert programmiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161005</guid><dc:creator><![CDATA[Nille88]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:05:35 GMT]]></title><description><![CDATA[<p>Dein Problem ist, dass du eine Klasse Ui::Sudoku Forward-deklarierst (und auch benutzt), diese wird aber nirgendwo konkret definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161006</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:11:07 GMT]]></title><description><![CDATA[<p>Ok <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Also meine Frage wäre dann wieso es bei fehler.cpp, gewonnen.cpp keinen Fehler gibt da ich es dann dort auch nicht definieren!<br />
Muss diese Deklaration dann in Sudoku.h?</p>
<p>Also tut mir leid wenn ich davon jetzt keine Ahnung habe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161007</guid><dc:creator><![CDATA[Nille88]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:12:27 GMT]]></title><description><![CDATA[<p>Nille88 schrieb:</p>
<blockquote>
<p>Ok, also das hab ich überprüft da stimmt alles!</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Wenn alles stimmen würde, dannn würden ja wohl weder wir noch der Compiler das Gegenteil behaupten. Wem glaubst du mehr, deinen eigenen Fähigkeiten oder dem Rest der Welt?</p>
<blockquote>
<p>Nur damit ich das richtig verstehe, die Forward-Deklaration ist dann in der sudoku.h-datei: Ui::Sudoku *ui; oder?<br />
Oder ist das die Klassendefinition?</p>
</blockquote>
<p>Weder noch. Wenn du Wörter nicht verstehst, dann schlag sie nach. Und lern die Grundlagen von Klassen. Die Foward-Deklaration steht hier im Forum in Zeile 30. Eine Defintion hast du wie gesagt gar nicht.</p>
<blockquote>
<p>Wie gesagt ich bin kein Informatiker sondern habe außer einem Programmierkurs in c++ nie objektorientiert programmiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Informatiker programmieren nicht (unbedingt). Aber man sieht, dass duu Schwierigkeiten mit objektorientierung hast. Vielleicht erst einmal Grundlagen lernen undeinfache Beispiele machen? Sonst endest du wie der berüchtigte Programmierbuchautor Jürgen Wolf und programmierst, dass ein Supermarkt eine Wurst ist. Du hast hier in deinem Programm praktisch schon behauptet, dass ein Sudoku ein Fenster ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161008</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:16:15 GMT]]></title><description><![CDATA[<p>Nille88 schrieb:</p>
<blockquote>
<p>Also meine Frage wäre dann wieso es bei fehler.cpp, gewonnen.cpp keinen Fehler gibt da ich es dann dort auch nicht definieren!<br />
Muss diese Deklaration dann in Sudoku.h?</p>
</blockquote>
<p>Meistens reicht eine Forward-Deklaration, also die Kenntnis, dass eine Klasse mit diesem Namen existiert. Erst wenn du ein Objekt konkret benutzt, muss der Compiler wissen, wie es genau aussieht und braucht die Definition. Wenn du in diesen Dateien nur Zeiger oder Referenzen auf ui:Sudoku benutzt, dann reicht die Forward-Deklaration.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161012</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:28:54 GMT]]></title><description><![CDATA[<p>Nille88 schrieb:</p>
<blockquote>
<p>Ok <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Also meine Frage wäre dann wieso es bei fehler.cpp, gewonnen.cpp keinen Fehler gibt da ich es dann dort auch nicht definieren!<br />
Muss diese Deklaration dann in Sudoku.h?</p>
<p>Also tut mir leid wenn ich davon jetzt keine Ahnung habe!</p>
</blockquote>
<p>Woher sollen wir das wissen? Du hast den Code ja nicht gezeigt. Wenn du dort jedoch auf Ui::Sudoku zugreifst, machst du auf jeden Fall etwas falsch.</p>
<p>Nach Qt-Logik müsste die Klasse jedenfalls in ui_sudoku.h definiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161017</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 11:59:08 GMT]]></title><description><![CDATA[<p>Ja wie gesagt bin neu im Qt-Programmieren!</p>
<p>Was mir eben nicht so klar ist, es lief ja alles wunderbar bis ich irgendetwas in sudoku.cpp verändert habe! Und wenn die Deklaration in fehler.h oder gewonnen.h falsch wäre dann hätte es dort aber vorher ja auch schon einen Fehler geben (da ich nach dem Fehler dort nichts verändert habe!) jedoch ist der Aufbau ja gleich!</p>
<p>Im file ui_sudoku.h habe ich nichts verändert, da es laut den Hinweisen automatisch generiert wird!</p>
<pre><code class="language-cpp">#ifndef UI_SUDOKU_H
#define UI_SUDOKU_H

#include &lt;QtCore/QVariant&gt;
#include &lt;QtGui/QAction&gt;
#include &lt;QtGui/QApplication&gt;
#include &lt;QtGui/QButtonGroup&gt;
#include &lt;QtGui/QHeaderView&gt;
#include &lt;QtGui/QMainWindow&gt;
#include &lt;QtGui/QWidget&gt;
#include &lt;QGridLayout&gt;

QT_BEGIN_NAMESPACE

class Ui_sudoku
{
public:
    QWidget *fenster;

    void setupUi(QMainWindow *Sudoku)
    {
        if (Sudoku-&gt;objectName().isEmpty())
            Sudoku-&gt;setObjectName(QString::fromUtf8(&quot;sudoku&quot;));
        Sudoku-&gt;resize(800, 600);
        fenster = new QWidget(Sudoku);
        fenster-&gt;setObjectName(QString::fromUtf8(&quot;fenster&quot;));
        Sudoku-&gt;setCentralWidget(fenster);

        retranslateUi(Sudoku);

        QMetaObject::connectSlotsByName(Sudoku);
    } // setupUi

    void retranslateUi(QMainWindow *Sudoku)
    {
        Sudoku-&gt;setWindowTitle(QApplication::translate(&quot;Sudoku&quot;, &quot;MainWindow&quot;, 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class Sudoku: public Ui_sudoku {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_SUDOKU_H
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2161026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161026</guid><dc:creator><![CDATA[Nille88]]></dc:creator><pubDate>Mon, 26 Dec 2011 11:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 12:14:43 GMT]]></title><description><![CDATA[<p>Was auch immer du da tust, es ist wirr. Laut deinem Code definierst du in fehler.h und in sudoku.h jeweils eine Klasse Sudoku. Diese Header werden in sudoku.cpp eingebunden. Trotzdem soll nur der Fehler zu Ui::Sudoku gemeldet werden. Das halte ich für sehr unwahrscheinlich ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161030</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 26 Dec 2011 12:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Invalid use of incomplete Type (in Qt) on Mon, 26 Dec 2011 12:29:00 GMT]]></title><description><![CDATA[<p>Jungs, tut mir leid eure Geduld strapaziert zu haben! Es geht!<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2161035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2161035</guid><dc:creator><![CDATA[Nille88]]></dc:creator><pubDate>Mon, 26 Dec 2011 12:29:00 GMT</pubDate></item></channel></rss>