<?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[error: invalid use of undefined type &#96;struct...]]></title><description><![CDATA[<p>Hallo,</p>
<p>Es geht hier um eine Fehlermeldung &quot;invalid use of undefined type `struct ClassCB´&quot;, dabei will ich einen neuen Objekt vom Typ ClassCB (selber erstellt, Mehrfachvererbung von 2 anderen Klassen) erstellen.</p>
<p>Mein .h -File:</p>
<pre><code class="language-cpp">#ifndef MAINWINDOW_H
#define MAINWINDOW_H

...

class ClassCB;

class MainWindow : public QMainWindow
{

...

private:

    ...
    ClassCB *myClass;
};

#endif
</code></pre>
<p>und im .cpp-File erstelle ich mein Objekt &quot;myClass&quot;:</p>
<pre><code class="language-cpp">#include &quot;mainwindow.h&quot;
...
myClass = new ClassCB; //auf diese Zeile bezieht sich die Fehlermeldung!
myClass.Read(&quot;gen1.gen&quot;);
...
</code></pre>
<p>Ich hab nur das Wesentliche gepostet, ich kann aber auch die Def. der meiner &quot;ClassCB&quot; - Klasse reinposten.<br />
Hat das was mit der Mehrfachvererbung meiner Klasse zutun? Genau nach dem gleichen Muster habe ich auch andere Objekte (von anderen Klassen) erstellt, aber alle samt sind Klassen mit einfacher Vererbung...</p>
<p>Vielen Dank für eure Hilfe...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205724/error-invalid-use-of-undefined-type-struct</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 19:35:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205724.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Feb 2008 12:24:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Sun, 17 Feb 2008 12:24:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Es geht hier um eine Fehlermeldung &quot;invalid use of undefined type `struct ClassCB´&quot;, dabei will ich einen neuen Objekt vom Typ ClassCB (selber erstellt, Mehrfachvererbung von 2 anderen Klassen) erstellen.</p>
<p>Mein .h -File:</p>
<pre><code class="language-cpp">#ifndef MAINWINDOW_H
#define MAINWINDOW_H

...

class ClassCB;

class MainWindow : public QMainWindow
{

...

private:

    ...
    ClassCB *myClass;
};

#endif
</code></pre>
<p>und im .cpp-File erstelle ich mein Objekt &quot;myClass&quot;:</p>
<pre><code class="language-cpp">#include &quot;mainwindow.h&quot;
...
myClass = new ClassCB; //auf diese Zeile bezieht sich die Fehlermeldung!
myClass.Read(&quot;gen1.gen&quot;);
...
</code></pre>
<p>Ich hab nur das Wesentliche gepostet, ich kann aber auch die Def. der meiner &quot;ClassCB&quot; - Klasse reinposten.<br />
Hat das was mit der Mehrfachvererbung meiner Klasse zutun? Genau nach dem gleichen Muster habe ich auch andere Objekte (von anderen Klassen) erstellt, aber alle samt sind Klassen mit einfacher Vererbung...</p>
<p>Vielen Dank für eure Hilfe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457491</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Sun, 17 Feb 2008 12:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Sun, 17 Feb 2008 12:56:08 GMT]]></title><description><![CDATA[<p>Dir fehlt noch ein</p>
<pre><code class="language-cpp">#include &quot;ClassCB.h&quot;
</code></pre>
<p>in der mainwindow.cpp.</p>
<p>Nur der Name reicht nicht aus, um ein Objekt zu erzeugen, dazu braucht der Compiler schon die gesamte Definition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457506</guid><dc:creator><![CDATA[~include]]></dc:creator><pubDate>Sun, 17 Feb 2008 12:56:08 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Mon, 18 Feb 2008 09:10:34 GMT]]></title><description><![CDATA[<p>Danke!... naja, darauf hätte ich eigentlich selber kommen müssen! <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="🙄"
    /></p>
<p>Aber nun habe ich eine andere Frage: Ich habe mir eine Klasse erstellt und die enthält unter anderem eine Liste, dabei sind die Elemente der Liste vom Typ meiner Klasse (ich hoffe man versteht was ich meine...). Gibt es für sowas einen bestimmten Begriff? (wie z.B. Rekursion)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458003</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Mon, 18 Feb 2008 09:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Mon, 18 Feb 2008 09:38:05 GMT]]></title><description><![CDATA[<p>Allroad schrieb:</p>
<blockquote>
<p>Aber nun habe ich eine andere Frage: Ich habe mir eine Klasse erstellt und die enthält unter anderem eine Liste, dabei sind die Elemente der Liste vom Typ meiner Klasse (ich hoffe man versteht was ich meine...). Gibt es für sowas einen bestimmten Begriff? (wie z.B. Rekursion)</p>
</blockquote>
<p>Komposition?</p>
<p>Wenn ein Objekt ein anderes enthält ist dies eine Komposition (unabhängig davon ob es eine 1:1 oder 1:n Verbindung ist).</p>
<p><a href="http://de.wikipedia.org/wiki/Komposition_%28UML%29#Komposition_und_Aggregation" rel="nofollow">http://de.wikipedia.org/wiki/Komposition_(UML)#Komposition_und_Aggregation</a></p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458024</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 18 Feb 2008 09:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Mon, 18 Feb 2008 09:56:53 GMT]]></title><description><![CDATA[<p>ist nicht ganz was ich suche... Ich dachte es ist sowas wie Rekursion, nur gehts dabei nicht um eine Funktion sonderen eine Klasse die als Element wieder die gleiche Klasse hat. Konkret sieht das bei mit so aus:</p>
<pre><code class="language-cpp">class ClassCB : public QWidget  

 {

 public:
       ...  

 private:
     ...
     QList&lt;ClassCB&gt; underOrder; // das hier meine ich...
     ...
 };
</code></pre>
<p>p.s. das ganze läuft unter Qt deswegen die komischen Q...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458036</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Mon, 18 Feb 2008 09:56:53 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Mon, 18 Feb 2008 10:24:26 GMT]]></title><description><![CDATA[<p>Allroad schrieb:</p>
<blockquote>
<p>ist nicht ganz was ich suche... Ich dachte es ist sowas wie Rekursion, nur gehts dabei nicht um eine Funktion sonderen eine Klasse die als Element wieder die gleiche Klasse hat. Konkret sieht das bei mit so aus:</p>
</blockquote>
<p>Das ist eine Komposition, und wenn du es noch genauer willst, ist dies Eine Variante des &quot;Kompositum-Entwurfsmusters&quot;.</p>
<p><a href="http://de.wikipedia.org/wiki/Entwurfsmuster" rel="nofollow">http://de.wikipedia.org/wiki/Entwurfsmuster</a><br />
<a href="http://de.wikipedia.org/wiki/Kompositum_%28Entwurfsmuster%29" rel="nofollow">http://de.wikipedia.org/wiki/Kompositum_(Entwurfsmuster)</a></p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458056</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 18 Feb 2008 10:24:26 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Mon, 18 Feb 2008 10:29:16 GMT]]></title><description><![CDATA[<p>Super, danke... ist genau was ich suche!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458060</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Mon, 18 Feb 2008 10:29:16 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 10:42:09 GMT]]></title><description><![CDATA[<p>mal wieder Probleme mit meiner Klasse....</p>
<p>Nun möchte ich in einer anderen Klasse, ein Objekt vom Typ ClassCB erstellen. Dabei kommt folgende Fehlermeldung:</p>
<pre><code>error: invalid application of ´sizeof´ to incomplete type ´ClassCB´
</code></pre>
<p>Heisst das, dass ich alle Elemente meiner Klasse initialisieren muss (in der Klassendefinition)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458722</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Tue, 19 Feb 2008 10:42:09 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 11:15:51 GMT]]></title><description><![CDATA[<p>inclompete Type heisst, dass der Compiler noch nicht die volle Klassendefinition gesehen hat (evtl. einen header nicht eingebunden?) erst wenn er weiss, welche Member die Klasse hat, kann er auch sagen, wieviel Platz sie im Speicher belegen wird (sizeof() tut genau das).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458752</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Feb 2008 11:15:51 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 12:42:26 GMT]]></title><description><![CDATA[<p>Danke, das wars (schon wieder Header nicht eingebunden, bzw. an der falschen Stelle...)!</p>
<p>Damit ist aber nicht Schluss, nun habe ich folgendes Problem:</p>
<pre><code>src/classCB.h: In copy constructor ‘ClassCB::ClassCB(const ClassCB&amp;)’:
src/classCB.h:17:   instantiated from ‘void QList&lt;T&gt;::insert(int, const T&amp;) [with T = ClassCB]’
src/worksheet.cpp:117:   instantiated from here
/usr/local/Trolltech/Qt-4.3.0rc1/include/QtGui/qwidget.h:701: error: ‘QWidget::QWidget(const QWidget&amp;)’ is private
</code></pre>
<p>wie gesagt, das Ganze wird für ein Qt-Programm gebraucht, aber ich denke das ist dennoch alles nur C++ Zeug...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458812</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Tue, 19 Feb 2008 12:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 12:53:29 GMT]]></title><description><![CDATA[<p>Allroad schrieb:</p>
<blockquote>
<p>Danke, das wars (schon wieder Header nicht eingebunden, bzw. an der falschen Stelle...)!</p>
<p>Damit ist aber nicht Schluss, nun habe ich folgendes Problem:</p>
<pre><code>src/classCB.h: In copy constructor ‘ClassCB::ClassCB(const ClassCB&amp;)’:
src/classCB.h:17:   instantiated from ‘void QList&lt;T&gt;::insert(int, const T&amp;) [with T = ClassCB]’
src/worksheet.cpp:117:   instantiated from here
/usr/local/Trolltech/Qt-4.3.0rc1/include/QtGui/qwidget.h:701: error: ‘QWidget::QWidget(const QWidget&amp;)’ is private
</code></pre>
<p>wie gesagt, das Ganze wird für ein Qt-Programm gebraucht, aber ich denke das ist dennoch alles nur C++ Zeug...</p>
</blockquote>
<p>Jein... Ja, es lässt sich mit C++ Mitteln erklären, nein, es liegt schon am QT-Design ;p</p>
<p>Scheinbar hat QWidget keinen Kopierkonstruktor, ist also nicht für Kopien vorgesehen. Da deine Klasse ClassCB von diesem erbt betrifft es auch diese. Nun ist es aber so, das QList wohl (wie eigentlich alle Kontainerklassen) den Kopierkonstruktor erwartet.</p>
<p>Eine Möglichkeit das zu umgehen ist mit Zeigern statt Objekten zu arbeiten (oder wenn sich nicht den Kopf über Speicherfreigaben etc. machen will, alternativ mit Smartpointern wie z.B. boost::shared_ptr).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458823</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 19 Feb 2008 12:53:29 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 12:55:36 GMT]]></title><description><![CDATA[<p>Daher wird bei Qt ja eigentlich auch immer nur mit Pointern gearbeitet was Widgets etc angeht (siehe designer).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458826</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 19 Feb 2008 12:55:36 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 12:57:32 GMT]]></title><description><![CDATA[<p>Uebersetzt: QList&lt;ClassCB&gt;::insert benutzt den Copy-Ctor von ClassCB. Der Widerum benutzt den Copy-Ctor von QWidget. Letzterer aber ist privta, kann daher nicht benuttz werden und die ganze Operation geht schief.</p>
<p>Ich rate mal:</p>
<p>- ClassCB hat ein Member oder Basisklasse vom Typ QWidget<br />
- Du hast selber keinen Copy-Ctor fuer ClassCB definiert, also macht dein Compiler das fuer dich. dafuer kopiert er einfach Stueck fuer Stueck die Innereien von ClassCB mittels der entsprechenden Copy-Ctoren - und das geht bei dem QWidget-Member schief.</p>
<p>Also: Immer drauf achten dass du den Copy-Ctor op= und evtl. auch Dtor definierst, wenns die 0-8-15-Versionen vom Compiler nicht tun. Ich habgrade heute in den &quot;C++ Coding Standards&quot; von Sutter udn Alexandrescu gelesen, dass man am Besten einen entsprechenden Kommentar einbringt, wenn man die Dinger bewusst dem Compiler ueberlaesst, so kann man schnell sehen ob das einfach vergessen wurde <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/1458827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458827</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Feb 2008 12:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 13:13:22 GMT]]></title><description><![CDATA[<p>Ok, das ist glaube ich doch recht hilfreich, aber mir fehlen noch ein Paar Grundkentnisse..., d.h. ich lese erstmal brav weiter über Kopierkonstruktoren, wenn ich dann nicht weiter komme melde ioch mich nochmal... (davon gehe ich mal aus..!) <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/1458839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458839</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Tue, 19 Feb 2008 13:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to error: invalid use of undefined type &#96;struct... on Tue, 19 Feb 2008 15:00:45 GMT]]></title><description><![CDATA[<p>Geschafft...! Hab statt Objekte, Pointer benutzt und es funkt! Danke.</p>
<pre><code>QList&lt;ClassCB*&gt; myList
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1458921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458921</guid><dc:creator><![CDATA[Allroad]]></dc:creator><pubDate>Tue, 19 Feb 2008 15:00:45 GMT</pubDate></item></channel></rss>