<?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[Struktur initialisieren....]]></title><description><![CDATA[<p>Hi,</p>
<p>ich nutze eine Struktur als Member...</p>
<pre><code class="language-cpp">private:
...
    int m_startup;
    int m_error;
    SOCKET m_sock;
    sockaddr_in m_client_addr;
...
</code></pre>
<p>wird so die Struktur korrekt initialiert oder is das Quark?</p>
<pre><code class="language-cpp">SocketClient::SocketClient(): m_startup(-1), m_error(0), m_sock(0), m_client_addr()
{
    //ctor
}
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307561/struktur-initialisieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 11:24:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307561.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Aug 2012 21:40:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struktur initialisieren.... on Wed, 29 Aug 2012 21:40:45 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich nutze eine Struktur als Member...</p>
<pre><code class="language-cpp">private:
...
    int m_startup;
    int m_error;
    SOCKET m_sock;
    sockaddr_in m_client_addr;
...
</code></pre>
<p>wird so die Struktur korrekt initialiert oder is das Quark?</p>
<pre><code class="language-cpp">SocketClient::SocketClient(): m_startup(-1), m_error(0), m_sock(0), m_client_addr()
{
    //ctor
}
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246844</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Wed, 29 Aug 2012 21:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Wed, 29 Aug 2012 22:00:08 GMT]]></title><description><![CDATA[<p>Was verstehst du unter 'korrekt', was sind die ganzen Datentypen genau und was soll an einem struct anders sein als an anderen Datentypen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246849</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 29 Aug 2012 22:00:08 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 05:00:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Was verstehst du unter 'korrekt', was sind die ganzen Datentypen genau und was soll an einem struct anders sein als an anderen Datentypen?</p>
</blockquote>
<p>Na, die WinAPI Sockets wirste doch kennen? Oder meinst du die ganzen anderen Member die er wahrscheinlich hat?</p>
<p>JA, wenn du in der richtigen Reihenfolge alle Member mit der Initialisierungsliste richtig initialisierst (oder zumindest in jedem Konstruktor selbst), ist das in Ordnung. C++11 unterstützt auch delegation für Konstruktoren, d. h. das dürfte bei mehreren Konstruktoren noch einfacher werden.</p>
<p>Fragt sich nur, was &quot;richtig&quot; heißt, hm? Zeig doch noch einmal <em>alles</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246878</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 30 Aug 2012 05:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 05:46:59 GMT]]></title><description><![CDATA[<p>Default-Konstruktion eines POD (sockaddr_in) bedeutet, dass alle Member auf 0 gesetzt werden. Insofern ist das 'korrekt'.</p>
<p>Da Du m_client_addr vermutlich von accept() füllen lässt und vermutlich auch nicht verwendest, bevor ein Client akzeptiert wurde, könntest Du Dir diese Initialisierung allerdings auch sparen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246883</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 30 Aug 2012 05:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 08:25:49 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Na, die WinAPI Sockets wirste doch kennen?</p>
</blockquote>
<p>Nein. Was ist dieses 'Win' von dem hier alle immer reden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246916</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Aug 2012 08:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 11:55:22 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Was ist dieses 'Win' von dem hier alle immer reden?</p>
</blockquote>
<p>Hat was mit WinWin-Situationen zu tun - &quot;Win(dows) win(s) - you loose&quot; <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/2246978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246978</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 30 Aug 2012 11:55:22 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 12:08:58 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Na, die WinAPI Sockets wirste doch kennen?</p>
</blockquote>
<p>Nein. Was ist dieses 'Win' von dem hier alle immer reden?</p>
</blockquote>
<p>Das ist die Abkürzung für Windows API, aber ich bin sicher, du weißt das schon längst und bist nur von der Abkürzung genervt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246987</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 30 Aug 2012 12:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 12:21:46 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Das ist die Abkürzung für Windows API, aber ich bin sicher, du weißt das schon längst und bist nur von der Abkürzung genervt...</p>
</blockquote>
<p>Dein Textverständnis ist eher oberflächlich, oder? Du bist so einer von den Typen die auf &quot;Können sie mir sagen, wie spät es ist?&quot; mit Ja/Nein antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246994</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Aug 2012 12:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 13:56:01 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Das ist die Abkürzung für Windows API, aber ich bin sicher, du weißt das schon längst und bist nur von der Abkürzung genervt...</p>
</blockquote>
<p>Dein Textverständnis ist eher oberflächlich, oder? Du bist so einer von den Typen die auf &quot;Können sie mir sagen, wie spät es ist?&quot; mit Ja/Nein antworten.</p>
</blockquote>
<p>Nö. Allerdings sehe ich es als dein Problem, wenn du hier Probleme mit &quot;Win&quot; hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247002</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 30 Aug 2012 13:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 12:38:57 GMT]]></title><description><![CDATA[<p>Kinder <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>btw. ist weder SOCKET noch sockaddr_in auf die Windows API beschränkt.<br />
Beide Typen sind Bestandteil der POSIX Socket Spezifikation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247005</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Thu, 30 Aug 2012 12:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 13:53:12 GMT]]></title><description><![CDATA[<p>SOCKET nicht, der tyedef ist ne Microsoft Idee.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247020</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Thu, 30 Aug 2012 13:53:12 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 15:14:43 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>danke für die rege Anteilnahme. Ich dachte nur dases ein guter Stil ist alle Member zu initialisieren. Und ich nicht wusste ob der Konstruktoraudruf der Struct socket_addr_in seine Arbeit tut. So wie es aussueht ja. Ich belege die Teile der Struktur die ich benötige nachträglich mit den richtigen Werten.<br />
Danke!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247049</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Thu, 30 Aug 2012 15:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 15:55:10 GMT]]></title><description><![CDATA[<p>Wozu dienen die anderen Member ueberhaupt? Ein Socket wird durch dein Handle, unter Windows der SOCKET, unter POSIX der int identifiziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247061</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 30 Aug 2012 15:55:10 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 22:24:59 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28420">@Kellerautomat</a>:<br />
SOCKET unter Windows ist auch nur ein typedef auf int, man kann also getrost portabel int verwenden <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="🙂"
    /></p>
<p>Allerdings hast du recht... die beiden zusätzlichen ints scheinen mir doch fragwürdig... (ersteren halte ich für den Rückgabewert von WSAStartup und zweiteren zur Speicherung aller möglicher Fehlercodes...)<br />
kA ob das wirklich nötig ist, die extra in Attributen zu speichern statt sie lokal handzuhaben...</p>
<p>auch die sockaddr_in dürfte eig kein Attribut sein müssen.<br />
Üblicherweise (ich gehe davon aus, dass du am Client arbeitest) wird die nur einmal zum Aufruf von connect verwendet und dann nie wieder... da erscheint ein Attribut als Verschwendung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247191</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Thu, 30 Aug 2012 22:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 22:44:16 GMT]]></title><description><![CDATA[<p>DrakoXP schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28420">@Kellerautomat</a>:<br />
SOCKET unter Windows ist auch nur ein typedef auf int, man kann also getrost portabel int verwenden <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="🙂"
    /></p>
</blockquote>
<p>Soweit ich weiss ist es unsigned unter Windows, aber sicher bin ich mir nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247194</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 30 Aug 2012 22:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Thu, 30 Aug 2012 23:01:55 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28420">@Kellerautomat</a>: du hast Recht.</p>
<p>winsock.h und winsock2.h schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef UINT_PTR SOCKET;
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2247198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247198</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Thu, 30 Aug 2012 23:01:55 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur initialisieren.... on Fri, 31 Aug 2012 14:35:58 GMT]]></title><description><![CDATA[<p>DrakoXP schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28420">@Kellerautomat</a>: du hast Recht.</p>
<p>winsock.h und winsock2.h schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef UINT_PTR SOCKET;
</code></pre>
</blockquote>
</blockquote>
<p>Das ist aber nicht unbedingt <code>unsigned int</code> .<br />
Was ist eigentlich so schwer daran, sich portable typedefs zu basteln anstatt ahnungslos über Gefrickel zu diskutieren?</p>
<pre><code class="language-cpp">#ifdef _WIN32
typedef SOCKET SocketHandle;
#else
typedef int SocketHandle;
#endif
</code></pre>
<p>FrankTheFox schrieb:</p>
<blockquote>
<p>wird so die Struktur korrekt initialiert oder is das Quark?</p>
<pre><code class="language-cpp">SocketClient::SocketClient(): m_startup(-1), m_error(0), m_sock(0), m_client_addr()
{
}
</code></pre>
</blockquote>
<p>Wenn man dem Socket schon einen Standardwert geben muss, warum denn bitte Null? Der Wert für ein ungültiges Socket ist -1, auf Windows <code>INVALID_SOCKET</code> .</p>
<p>Und wenn wir schon in C++ sind, warum nicht einfach Boost.Asio?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247391</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 31 Aug 2012 14:35:58 GMT</pubDate></item></channel></rss>