<?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[:: -&amp;gt; oder .  - was jetzt?]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wann nehm ich den ::, . , -&gt; Operator?<br />
:: scheint bei namespace sowie bei zugriff auf elemente bei ner klasse<br />
-&gt; verwendet man bei Zeigern?<br />
. überall sonst?<br />
oder wie jetzt?</p>
<p>Außerdem ist mir nicht klar, wenn ich jetzt einen neuen Objektzeiger definiere:<br />
int* dings = 12;<br />
und da drauf nen Wert speichere, wo wird der den gespeichert? Ich dachte das ist nur ein Zeiger und man kann daruf nur den verweiß auf die speicherstelle einer zb. Variable legen, aber nun wird da drauf ein wert gespeichert<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Was soll das, wo is jetzt der unterschied zu nem:<br />
int dings=12; ?</p>
<p>Aja und nochwas warum gibts bei der Microsoft Visual C++ 2008 Express Edition keine under nur begrenzte Vorschlagswerte? Bei C# 2008 Express werden wenn ich nur einen Buchstaben drücke schon Vorschläge unterbreitet.</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230408/gt-oder-was-jetzt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:23:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230408.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Dec 2008 11:09:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Fri, 26 Dec 2008 11:09:34 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wann nehm ich den ::, . , -&gt; Operator?<br />
:: scheint bei namespace sowie bei zugriff auf elemente bei ner klasse<br />
-&gt; verwendet man bei Zeigern?<br />
. überall sonst?<br />
oder wie jetzt?</p>
<p>Außerdem ist mir nicht klar, wenn ich jetzt einen neuen Objektzeiger definiere:<br />
int* dings = 12;<br />
und da drauf nen Wert speichere, wo wird der den gespeichert? Ich dachte das ist nur ein Zeiger und man kann daruf nur den verweiß auf die speicherstelle einer zb. Variable legen, aber nun wird da drauf ein wert gespeichert<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Was soll das, wo is jetzt der unterschied zu nem:<br />
int dings=12; ?</p>
<p>Aja und nochwas warum gibts bei der Microsoft Visual C++ 2008 Express Edition keine under nur begrenzte Vorschlagswerte? Bei C# 2008 Express werden wenn ich nur einen Buchstaben drücke schon Vorschläge unterbreitet.</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635721</guid><dc:creator><![CDATA[diego2k]]></dc:creator><pubDate>Fri, 26 Dec 2008 11:09:34 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Fri, 26 Dec 2008 11:28:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Klasse
{
    public:
    void foo();
    static void bar();
};

namespace ns
{
    void func();
};

Klasse obj;
obj.foo();     // man führt memberfunktionen eines objekts aus

Klasse * obj;
obj = new Klasse; // das gleiche nur per zeiger
obj-&gt;foo();

Klasse::bar();   // man führt statische memberfunktionen aus so

ns::func();      // man greift auf funktionen in nem namespace zu
</code></pre>
<p>namespaces können tief verschachtelt werden also z.b. ns1::ns2::ns3::func()<br />
und darin können genauso klassen sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635725</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 26 Dec 2008 11:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Fri, 26 Dec 2008 13:15:24 GMT]]></title><description><![CDATA[<p>Wenn man in einer abgeleiteten Klasse auf die (überdeckten) Member der Basisklasse zugreifen will, braucht man den Bereichsauflöser :: ebenfalls.</p>
<pre><code class="language-cpp">struct base
{
 int i; 
};

struct deriv : base
{
 int i;
 void foo ()
 {
  i = 2; //i aus deriv
  base::i = 5; // i aus base
 }
};
</code></pre>
<p>Die Codeversvollständigung kannst du mittels Ctrl + Space hervorholen.</p>
<p>EDIT:<br />
Natürlich braucht man den ::-Operator ebenfalls, wenn man von aussen auf die (überdeckten) Member der Basisklasse zugreifen will.</p>
<pre><code class="language-cpp">deriv d;
std::cout &lt;&lt; d.i; // gibt 2 aus
std::cout &lt;&lt; d.base::i; //gibt 5 aus
</code></pre>
<p>Also wenn ich mir deine Frage genau anschaue, dann solltest du wirklich nochmal ein wenig durch die Grundlagen blättern.<br />
Ein Zeiger macht nur Sinn, wenn du auch Speicher dazu hast.</p>
<pre><code class="language-cpp">int i = 2; //integer Objekt
int* pi = &amp;i; // Zeiger auf den integer in pi speichern

int* pi2 = new int; // Speicher aus dem Freispeicher anfordern und pi2 auf den Anfang zeigen lassen
delete pi2; // Speicher wieder freigeben
</code></pre>
<p>Ein Zeiger zeigt so lange auf gültigen Speicherbereich, wie das Objekt, auf das es zeigt gültig ist. (bei pi ist das der Scope, indem i deklariert ist und bei pi2, bis delete pi2 aufgerufen wird).</p>
<p>Zu den Operatoren gibt es noch zu sagen, dass der -&gt; Operator überladen werden kann und für deine eigenen Zwecke eingesetzt werden kann. (z.B smart Pointer).<br />
Wohingegen der .-Operator nicht überladen werden kann. Der ::-Operator kann auch dazu benutzt werden, um auf den globalen Bereich zuzugreifen.</p>
<pre><code class="language-cpp">int i = 2;
...
void foo ()
{
 int i = 5;
 std::cout &lt;&lt; ::i; //gibt 2 aus (globaler Namensraum)
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1635737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635737</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 26 Dec 2008 13:15:24 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Fri, 26 Dec 2008 13:08:17 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Also wenn ich mir deine Frage genau anschaue, dann solltest du wirklich nochmal ein wenig durch die Grundlagen blättern.<br />
Ein Zeiger macht nur Sinn, wenn du auch Speicher dazu hast.</p>
<pre><code class="language-cpp">int i = 2; //integer Objekt
int pi = &amp;i; // Zeiger auf den integer in pi speichern

int pi2 = new int; // Speicher aus dem Freispeicher anfordern und pi2 auf den Anfang zeigen lassen
delete pi2; // Speicher wieder freigeben
</code></pre>
<p>Ein Zeiger zeigt so lange auf gültigen Speicherbereich, wie das Objekt, auf das es zeigt gültig ist. (bei pi ist das der Scope, indem i deklariert ist und bei pi2, bis delete pi2 aufgerufen wird).</p>
</blockquote>
<p>Kleine Anmerkung: Du hast bei den Zeigern den Zeiger selbst vergessen.<br />
Also:</p>
<pre><code class="language-cpp">int i = 2; //Integer
int* pi = &amp;i; // Zeiger auf den integer in pi speichern

int* pi2 = new int; // Speicher aus dem Freispeicher anfordern und pi2 auf den Anfang zeigen lassen
delete pi2; // Speicher wieder freigeben
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1635754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635754</guid><dc:creator><![CDATA[Anmerkung]]></dc:creator><pubDate>Fri, 26 Dec 2008 13:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Fri, 26 Dec 2008 13:16:41 GMT]]></title><description><![CDATA[<p>Anmerkung schrieb:</p>
<blockquote>
<p>Kleine Anmerkung: Du hast bei den Zeigern den Zeiger selbst vergessen.</p>
</blockquote>
<p>Danke, habe es editiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635756</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 26 Dec 2008 13:16:41 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 11:47:41 GMT]]></title><description><![CDATA[<p>danke .. auch wenn ich das schwachsinnig finde, java c# php5 üerall reicht der Punkt und hier müssen es 3 Zeichen sein ...</p>
<p>Aber ich hab noch eine Frage und zwar zur typen umwandlung, das ganze scheint auch nicht einheitlich zu sein:<br />
const_cast wandelt man const und volatitle um<br />
static_cast nehm ich bei normalen umwandlungen int nach double nach float usw<br />
reinterpret_cast wenn man zeiger in Zahlen und umgekehrt umwandeln will?</p>
<p>und wie wandelt man strings um zb. string: 1.34 zu float oder umgekehrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636073</guid><dc:creator><![CDATA[msdiego2k]]></dc:creator><pubDate>Sat, 27 Dec 2008 11:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 12:07:27 GMT]]></title><description><![CDATA[<p>Schau mal im FAQ dazu nach.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636080</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Sat, 27 Dec 2008 12:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 12:13:07 GMT]]></title><description><![CDATA[<p>msdiego2k schrieb:</p>
<blockquote>
<p>danke .. auch wenn ich das schwachsinnig finde, java c# php5 üerall reicht der Punkt und hier müssen es 3 Zeichen sein ...</p>
<p>Aber ich hab noch eine Frage und zwar zur typen umwandlung, das ganze scheint auch nicht einheitlich zu sein:<br />
const_cast wandelt man const und volatitle um<br />
static_cast nehm ich bei normalen umwandlungen int nach double nach float usw<br />
reinterpret_cast wenn man zeiger in Zahlen und umgekehrt umwandeln will?</p>
</blockquote>
<p>Wenn es dir nicht passt, kannst du ja wieder zu Java, C# oder PHP zurück. Zwingt dich ja niemand.. Im übrigen hat es seine Gründe, warum es so &quot;viele&quot; Zeichen gibt. Sie haben unterschiedliche Bedeutungen und bezwecken andere Sachen. Diese Möglichkeiten hast du in anderen Sprachen nicht.</p>
<p>reinterpret_cast ist dazu da, um alles andere zu casten, was die anderen 2 nicht können (wenn es nötig ist). Und sollte dementsprechend selten anzutreffen sein. Er wandelt überhaupt nichts um, sondern belässt das Bit Muster genau so und ist manchmal nötig, wenn man mit etwas älteren API's arbeitet, die z.B einen Zeiger, unbekannten Types speichern wollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636086</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 12:13:07 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 12:19:24 GMT]]></title><description><![CDATA[<p>msdiego2k schrieb:</p>
<blockquote>
<p>danke .. auch wenn ich das schwachsinnig finde, java c# php5 üerall reicht der Punkt und hier müssen es 3 Zeichen sein ...</p>
</blockquote>
<p>Das liegt an den C-Wurzeln von C++. Du kannst alles mit Referenzen machen, dann baruchst Du weder * noch -&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636089</guid><dc:creator><![CDATA[c++fan 2008]]></dc:creator><pubDate>Sat, 27 Dec 2008 12:19:24 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 12:26:51 GMT]]></title><description><![CDATA[<blockquote>
<p>Das liegt an den C-Wurzeln von C++. Du kannst alles mit Referenzen machen, dann baruchst Du weder * noch -&gt;</p>
</blockquote>
<p>das hier dürfte dir weiter helfen.............Operator &amp;</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://tutorial.schornboeck.net/referenzen.htm" rel="nofollow">http://tutorial.schornboeck.net/referenzen.htm</a> :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636092</guid><dc:creator><![CDATA[chi]]></dc:creator><pubDate>Sat, 27 Dec 2008 12:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 12:31:24 GMT]]></title><description><![CDATA[<p>c++fan 2008 schrieb:</p>
<blockquote>
<p>msdiego2k schrieb:</p>
<blockquote>
<p>danke .. auch wenn ich das schwachsinnig finde, java c# php5 üerall reicht der Punkt und hier müssen es 3 Zeichen sein ...</p>
</blockquote>
<p>Das liegt an den C-Wurzeln von C++. Du kannst alles mit Referenzen machen, dann baruchst Du weder * noch -&gt;</p>
</blockquote>
<p>Alles nicht. Zeicher haben auch jetzt noch ihre Gründe.<br />
Nichtsdestotrotz kann man für viele Aufgaben, für die Zeiger verantwortlich waren Heute auch Referenzen benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636096</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 12:31:24 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 17:03:50 GMT]]></title><description><![CDATA[<p>erstmal danke für die antworten, weiß jetzt das was ich wissen wollte.</p>
<p>Und nicht gleich beleidigt sein wenn ich was als Schwachsinn bezeichne <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="🙄"
    /> is ja nicht so gemeint</p>
<p>Das mit den refs find ich super, ^^</p>
<p>Nur das man ein neues Objekt sowie die Instanz einer Klasse so erstellt<br />
Klasse obj;<br />
find ich komisch, das sieht ja so aus als wäre hier nur mal das Objekt erstellt worden und man müsste erst die instanz erstellen;<br />
obj = new klass();<br />
also klasse obj = new klasse();</p>
<p>aber das is ja falsch, das geht hier wieder nur wenn man zuerst nen Zeiger erstellt<br />
klasse* obj;<br />
obj = new klasse();<br />
und dann brauch ich wieder den komischen -&gt;<br />
obj-&gt;meth(asd);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636194</guid><dc:creator><![CDATA[diego2k]]></dc:creator><pubDate>Sat, 27 Dec 2008 17:03:50 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Mon, 29 Dec 2008 20:13:12 GMT]]></title><description><![CDATA[<p>Casts sind generell selten anzutreffen, am häufigsten ist wohl <code>static_cast</code> . <code>const_cast</code> sollte man möglichst überall vermeiden. <code>dynamic_cast</code> lässt sich oft durch kleine Designänderungen (virtuelle Funktionen) ersetzen, und <code>reinterpret_cast</code> ist eigentlich nur bei Low-Level-Operationen nötig, oder wenn man beispielsweise mit C-APIs programmiert.</p>
<p>Das Schlimmste ist aber der Klammer-C-Cast-Operator, denn der ist böse und versucht, die Typen irgendwie umzubiegen. In C++ sollte man wenn möglich die spezialisierten Cast-Operatoren verwenden.</p>
<p>Zu deinem Problem: Du musst grundsätzlich zwischen Zeigern und Objekten unterscheiden, vielleicht solltest du das nochmals nachlesen. Im Übrigen ist Objekt das Gleiche wie Instanz.</p>
<pre><code class="language-cpp">Klasse obj;                 // erstellt ein Objekt der Klasse. Das existiert nun schon, new ist unnötig.
Klasse* ptr = new Klasse(); // Legt einen Zeiger an, dem gerade ein Speicherbereich zugesichert wird.
                            // Eine Instanz wurde mit new auch gerade konstruiert.
delete ptr;              // Zerstört die Instanz und gibt den Speicher frei.
</code></pre>
<p><em>Edit: Flüchtigkeitsfehler ( <code>delete Klasse;</code> )</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636199</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 29 Dec 2008 20:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 18:25:44 GMT]]></title><description><![CDATA[<p>Welche art der Konvertierung gibt’s denn noch?<br />
Im Buch ist nur gestanden ich soll die c-casts lassen, also das (char …), und die neuen Typenumwandlungs Operatoren verwenden:<br />
Const static dynamic reinterpret, bei mir hat der static eigentlich immer funktioniert bis auf die strings da geht’s mit den stringstream recht gut.<br />
Obwohl es funktioniert auch das:<br />
Char asd=’f’;<br />
Int k = asd;<br />
o.O</p>
<p>Das mit den Zeigern werd ich mir glaub ich noch mal anschauen, is ja ne dubiose Geschichte, aber bin sowieso noch lange nicht fertig ..</p>
<p>Objekt ist so was wie ein Model, erst wennst es instanzierst hauchst ihm leben ein.<br />
Jede instanz is ein Objekt umgekehrt muss das aber nicht sein</p>
<p>Class1[] asd = new Class1[3];<br />
asd[1] = new Class1();// würdest die Zeile weglassen gibts nen Fehler weil noch keine instanz aufm objekt ist<br />
asd[1].funkt();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636230</guid><dc:creator><![CDATA[diego2k]]></dc:creator><pubDate>Sat, 27 Dec 2008 18:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 18:29:02 GMT]]></title><description><![CDATA[<p>Das ist eben bei C++ anderst, als z.B in C#. Wenn du einen Typen in einer Funktion deklarierst:</p>
<pre><code class="language-cpp">Class instance;
</code></pre>
<p>Dann wird bereits ein Objekt erstellt und der Standardkonstruktor aufgerufen. (Es ist also auch eine Definition) Hier hast du ein Objekt, dass lediglich im deklarierenden Scope lebt und danach (bei dem } ) wieder zerstört wird (automatisch). In einer Klasse lebt das Objekt so lange, wie die Klasse selbst lebt. Wobei die Initialisierung noch vor dem Konstruktor stattfindet. (in der Initialisierungsliste, gibt es in C# z.B auch nicht).</p>
<p>Auf ein solches Objekt kannst du auch per .-Operator zugreifen. (oder, wenn einer definiert ist einen -&gt; Operator, den du nämlich selber überladen kannst).</p>
<p>Wenn du allerdings einen Zeiger auf ein Objekt erstellst:</p>
<pre><code class="language-cpp">Class* pinstance;
</code></pre>
<p>Dann ist das lediglich die deklaration eines Zeigers (und somit auch Definition). Aber du hast noch kein Objekt vom Typen Class, sondern erst einen Zeiger darauf. Also musst du jetzt noch an den Speicher kommen. Dazu gibt es 2 &quot;Techniken&quot;:<br />
1. Du benutzt den Zeiger lediglich als Verweis auf ein Objekt, dass automatisch verwaltet wird:</p>
<pre><code class="language-cpp">Class instance;
Class* pinstance = &amp;instance;
</code></pre>
<p>Hier ist pinstance solange gültig, wie auch instance gültig ist. (Solange sich beide im selben Scope befinden, ist das kein Problem, da der Zeiger selbt dann auch zerstört wird. Wenn nicht, ist vorsichtig damit umzugehen, da der Zeiger auf ungültigen Speicher zeigen kann. Das ist der Grund, warum das hier böse ist:</p>
<pre><code class="language-cpp">int* GetInteger ()
{
 int i;
 return &amp;i;
}
</code></pre>
<p>Der zurückgegeben Zeiger wird nie auf gültigen Speicher zeigen und jegliches operieren damit ist undefiniert.</p>
<p>2. Du holst dir den Speicher vom Freispeicher und verwaltest alles selbst</p>
<pre><code class="language-cpp">Class* pinstance = new Class();
</code></pre>
<p>pinstance lebt hier solange, wie du nicht delete auf pinstance aufrufst. Somit ist auch hier vorsicht geboten, da nicht vergessen werden darf den Speicher wieder richtig freizugeben. Somit ist das hier auf eine Weise auch böse:</p>
<pre><code class="language-cpp">int* GetInteger ()
{
 return new int;
}
</code></pre>
<p>Da der Aufrufer, wenn er es nicht weiss, dass er den Speicher freigeben soll es auch kaum tun wird. Allerdings wird diese Technik auf verschiedene Arten noch benutzt, indem z.B eine Klasse sich um die Speicherverwaltung kümmert, oder dir explizit vorgegeben wird, dass du den Speicher wieder freigeben musst. (z.B COM).</p>
<p>Wie du siehst, ist das ganze ein wenig anderst, als in anderen Sprachen. Und das hat Vor und Nachteile. Wichtig ist nur, dass du dir bewusst bist, dass du in C++ vorsichtiger mit new umgehen musst und es nicht im selben Sinne, wie in anderen Sprachen benutzt wird. (Vor allem, dass du den Speicher auch wieder freigeben musst ist speziell).<br />
Jetzt sollte dir aber auch langsam klar werden, wo die Unterschiedlichen Aspekte von Zeigern auf Objekte und normalen Objekte liegt.</p>
<p>So, ich hoffe, ich konnte ein wenig Licht ins Dunkle bringen. <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 />
Ein gutes C++ für Umsteiger, der die (manchmal doch entscheidenden) Unterschiede der Sprache aufzeigt, auch wenn sie manchmal gar nicht anderst aussehen. (alleine schon so etwas einfaches, wie if hält in C++ einige Überraschungen für Leute, die von C#/Java kommen :))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636235</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 18:29:02 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Sat, 27 Dec 2008 18:32:27 GMT]]></title><description><![CDATA[<blockquote>
<p>Im Buch ist nur gestanden ich soll die c-casts lassen, also das (char …), und die neuen Typenumwandlungs Operatoren verwenden:<br />
Const static dynamic reinterpret, bei mir hat der static eigentlich immer funktioniert bis auf die strings da geht’s mit den stringstream recht gut.<br />
Obwohl es funktioniert auch das:<br />
Char asd=’f’;<br />
Int k = asd;</p>
</blockquote>
<p>Die 3 genannten und C-Casts.</p>
<p>Das dort geht, weil chars intern auch Zahlenwerte haben, die sich umwandlen lassen.</p>
<p>Wegen der anderen Frage siehe einen Post weiter oben. <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/1636238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636238</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 27 Dec 2008 18:32:27 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Mon, 29 Dec 2008 11:36:59 GMT]]></title><description><![CDATA[<p>danke für die mühe ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636775</guid><dc:creator><![CDATA[_diego2k]]></dc:creator><pubDate>Mon, 29 Dec 2008 11:36:59 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Mon, 29 Dec 2008 12:29:44 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Klasse obj;                 // erstellt ein Objekt der Klasse. Das existiert nun schon, new ist unnötig.
Klasse* ptr = new Klasse(); // Legt einen Zeiger an, dem gerade ein Speicherbereich zugesichert wird.
                            // Eine Instanz wurde mit new auch gerade konstruiert.
delete Klasse;              // Zerstört die Instanz und gibt den Speicher frei.
</code></pre>
</blockquote>
<p>es müsste</p>
<pre><code class="language-cpp">delete ptr;
</code></pre>
<p>heißen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636800</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Mon, 29 Dec 2008 12:29:44 GMT</pubDate></item><item><title><![CDATA[Reply to :: -&amp;gt; oder .  - was jetzt? on Mon, 29 Dec 2008 20:12:24 GMT]]></title><description><![CDATA[<p>Stimmt natürlich, kleiner Flüchtigkeitsfehler. Ich werde es oben editieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637013</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 29 Dec 2008 20:12:24 GMT</pubDate></item></channel></rss>