<?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[Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie sage ich dem Compiler, dass ich ein Objekt &quot;deklarieren&quot;(das heist dann bestimmt nicht mehr deklarieren, deswegen in Anführungseichen) ohne es zu erstellen.</p>
<p>Der Code</p>
<pre><code class="language-cpp">Klasse meinObjekt;
</code></pre>
<p>erzeugt ja gleich das Objekt. Ich möchte es aber ggf. erst später mit new erzeugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270739/objekt-quot-deklarieren-quot-ohne-zu-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 23:10:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270739.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Jul 2010 13:24:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:24:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie sage ich dem Compiler, dass ich ein Objekt &quot;deklarieren&quot;(das heist dann bestimmt nicht mehr deklarieren, deswegen in Anführungseichen) ohne es zu erstellen.</p>
<p>Der Code</p>
<pre><code class="language-cpp">Klasse meinObjekt;
</code></pre>
<p>erzeugt ja gleich das Objekt. Ich möchte es aber ggf. erst später mit new erzeugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927629</guid><dc:creator><![CDATA[mousepad]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:26:20 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Klasse* meinObjekt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1927631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927631</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:26:20 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:32:28 GMT]]></title><description><![CDATA[<p>Normalerweise (ohne Heap):</p>
<pre><code class="language-cpp">extern Type object;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1927633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927633</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:32:28 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:35:37 GMT]]></title><description><![CDATA[<p>Ich würde dazu vielleicht den <a href="http://magazin.c-plusplus.net/artikel/Pointer%20in%20C%28PlusPlus%29" rel="nofollow">Artikel über Zeiger</a> lesen.</p>
<p>Ad aCTa schrieb:</p>
<blockquote>
<p>Normalerweise (ohne Heap):</p>
<pre><code class="language-cpp">extern Type object;
</code></pre>
</blockquote>
<p>Das geht aber nur auf globaler Ebene, definiert werden muss das Objekt dennoch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927635</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:35:37 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:43:36 GMT]]></title><description><![CDATA[<blockquote>
<p>&gt; definiert werden muss das Objekt dennoch.</p>
</blockquote>
<p>Das ist ja der Zweck der Deklaration. <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/1927639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927639</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:43:36 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:49:17 GMT]]></title><description><![CDATA[<p>Ad aCTa schrieb:</p>
<blockquote>
<p>Normalerweise (ohne Heap):</p>
<pre><code class="language-cpp">extern Type object;
</code></pre>
</blockquote>
<p>Ich bezweifle, dass er das gesucht hat. Zuerst dachte ich auch, dass er <code>extern</code> sucht, aber da er ja noch gesagt hat, dass er es mit <code>new</code> erzeugen will ist der Fall wohl klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927643</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 13:52:10 GMT]]></title><description><![CDATA[<p>Ad aCTa schrieb:</p>
<blockquote>
<blockquote>
<p>&gt; definiert werden muss das Objekt dennoch.<br />
Das ist ja der Zweck der Deklaration. <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>
</blockquote>
</blockquote>
<p>Nein, der Definition. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>Ich meinte nur, dass <code>extern</code> im Zusammenhang mit verspäteter Initialisierung zur Laufzeit nicht viel bringt, sondern nur die Speicherklasse (bzw. eine explizite Deklaration ohne Definition auf Namensraum-Ebene) kennzeichnet.</p>
<pre><code class="language-cpp">int main()
{
    MyClass* obj = NULL;
    // ...
    // später:
    if (condition)
        obj = new MyClass;
    // ...
    delete obj;
}
</code></pre>
<pre><code class="language-cpp">int main()
{
    extern MyClass obj;
    // ...
    // später:
    ??? // wie jetzt?
}
</code></pre>
<p>Aber man sollte die Initialisierung ohnehin nicht unnötig hinauszögern. Lieber die Variablen erst deklarieren, wenn sie benötigt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927644</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 17 Jul 2010 13:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 14:27:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hier bekommt man ja schnell eine Antwort. Das ich geschrieben habe, dass ich es mit new erzeugen will war blöd, denn das impliziert ja Zeiger.</p>
<p>Das es mit Zeigern geht ist mir klar. Ich frage mich nur, ob das spätere erzeugen auch ohne geht.</p>
<p>Wie man vl schon gemerkt hat, lerne ich gerade erst C++, vormals habe ich jahrelang mit Delphi programmiert, wo das mit dem späteren erzeugen ohne Zeiger möglich war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927660</guid><dc:creator><![CDATA[mousepad]]></dc:creator><pubDate>Sat, 17 Jul 2010 14:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 14:29:12 GMT]]></title><description><![CDATA[<p>Bevor hier noch weiter spekuliert wird, solltest du (mousepad) vielleicht einen konkreten Anwendungsfall beschreiben, in dem du eine verzögerte Initialisierung für sinnvoll hältst. Am besten mit ein wenig Code. Je nach Kontext gibt es nämlich andere Möglichkeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927661</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 17 Jul 2010 14:29:12 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 14:51:37 GMT]]></title><description><![CDATA[<p>mousepad schrieb:</p>
<blockquote>
<p>Wie man vl schon gemerkt hat, lerne ich gerade erst C++, vormals habe ich jahrelang mit Delphi programmiert, wo das mit dem späteren erzeugen ohne Zeiger möglich war.</p>
</blockquote>
<p>Der Delphi Code</p>
<pre><code>var
  myObject : myClass;
begin
  myObject := myClass.Create;
  // ...
  myObject.Free;
end;
</code></pre>
<p>entspricht einem C++ Code</p>
<pre><code class="language-cpp">{
  myClass * myObject = new MyClass;
  // ...
  delete myObject;
}
</code></pre>
<p>Das von dir gepostete</p>
<pre><code>Klasse meinObjekt;
</code></pre>
<p>existiert in Delphi gar nicht. Du kannst Dir auch eine Referenz auf dein Objekt holen ( <code>myClass&amp; ref = *myObject</code> ), wenn Du die Zeigersemantik nicht gebrauchen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927677</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sat, 17 Jul 2010 14:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 14:52:59 GMT]]></title><description><![CDATA[<p>mousepad schrieb:</p>
<blockquote>
<p>Ich frage mich nur, ob das spätere erzeugen auch ohne geht.</p>
</blockquote>
<p>Nicht ohne einige Akrobatik.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927678</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 17 Jul 2010 14:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 15:30:56 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Der Delphi Code</p>
<pre><code>var
  myObject : myClass;
begin
  myObject := myClass.Create;
  // ...
  myObject.Free;
end;
</code></pre>
<p>entspricht einem C++ Code</p>
<pre><code class="language-cpp">{
  myClass * myObject = new MyClass;
  // ...
  delete myObject;
}
</code></pre>
</blockquote>
<p>Hmmm... das sieht ja komisch aus. Das Delphi, was ich kenne (ist schon eine Weile her) verwendet keine implizite Indirektion, so wie Du es andeutest. Da hat man noch mit New und Dispose gearbeitet (ähnlich wie new und delete in C++) und explizit Zeiger gebaut ( <code>type PMyClass = ^TMyClass;</code> ). Ist das so richtig, wie Du es gesagt hast? Dann wäre das ja eine Änderung der Sprache, die nicht abwärtskompatibel ist, oder?</p>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927698</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 17 Jul 2010 15:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 15:44:57 GMT]]></title><description><![CDATA[<p>Ich muss erst seit kurzem mit Delphi arbeiten. Habe da aber auch mit einem uraltem Delphi5 angefangen (Hab dann aber schnell dafür gesorgt, dass eine aktuelle Version angeschafft wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> )<br />
Aber auch in der 5er Version war das der Weg Objekte zu erzeugen (und zwar der einzige mir bekannte, was mich anfangs ziemlich geärgert hat, naja eigentlich immer noch). Jede Klasse die von TObject erbt, erbt dessen <code>constructor Create</code> und <code>destructor Destroy</code> bzw. überschreibt/überlädt diesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927705</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sat, 17 Jul 2010 15:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sat, 17 Jul 2010 23:51:21 GMT]]></title><description><![CDATA[<p>New und Dispose in Delphi werden noch unterstützt, kommen allerdings noch aus Turbo Pascal. Sie sind also schon relativ alt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927909</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sat, 17 Jul 2010 23:51:21 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt &amp;quot;deklarieren&amp;quot; ohne zu erstellen? on Sun, 18 Jul 2010 00:56:20 GMT]]></title><description><![CDATA[<p>Kann es sein, dass man den expliziten Konstruktoraufruf in Delphi nur braucht, weil die Variablen in einem eigenen Deklarationsteil vor dem Block deklariert werden? In C++ erstellt man Variablen genau an der Stelle, wo man sie braucht.</p>
<pre><code>(* pseudo-delphi *)
var
  meinObjekt : meineKlasse;
begin
  bla bla;
  meinObjekt.Create;
  blub blub;
end;

// c++
{
  bla bla;
  meineKlasse meinObjekt;
  blub blub;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1927922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927922</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 18 Jul 2010 00:56:20 GMT</pubDate></item></channel></rss>