<?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[Umstieg von C# auf C++]]></title><description><![CDATA[<p>Guten Tag miteinander,</p>
<p>Also zuerst mal etwas zu meinen Kenntnissen.<br />
Die letzten 3 1/2 Jahre wurde ich auf C# ausgebildet. Während der Ausbildung bekam ich auch Einsicht in andere Programmiersprachen wie VB oder JAVA. Dies sind jedoch alles Top-Level Sprachen.</p>
<p>Daher begann ich mich mit c++ auseinander zu setzen, aber ich scheitere schon bei den Grundlagen und möchte hier um ein wenig Hilfe bitten.</p>
<p>Das es ein Forum für Windows-Programmierung gibt habe ich gesehen. Im Code verwende ich die WinSock2.h jedoch hat meine Frage nichts spezifisch mit der Socket Programmierung zu tun sondern mit c++ im allgemeinen.</p>
<p>Ich habe eine Klasse in einem eigenen .cpp-File. Dazu habe ich wie es sich gehört ein .h File erstellt wo die Definitionen abgelegt sind.</p>
<p>Diese Files sehen so aus:<br />
.h</p>
<pre><code class="language-cpp">#ifndef SOCKETTOOLS_H_INCLUDED
#define SOCKETTOOLS_H_INCLUDED
#include &lt;iostream&gt;
#include &lt;WinSock2.h&gt;
class SocketTools
{
    public:
        SocketTools();
        ~SocketTools();
        char* ParseSocketError(unsigned int u_intError);

};

#endif // SOCKETTOOLS_H_INCLUDED
</code></pre>
<p>.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;WinSock2.h&gt;

class SocketTools
{
    public:
        SocketTools()
        {

        }
        ~SocketTools()
        {

        }
        char* ParseSocketError(unsigned int u_intError)
        {
            switch(u_intError)
            {
                case WSANOTINITIALISED:
                    return &quot;WSANOTINITIALISED&quot;;
                case WSAENETDOWN:
                    return &quot;WSAENETDOWN&quot;;
                case WSAEACCES:
                   return &quot;WSAEACCES&quot;;
                case WSAEADDRINUSE:
                    return &quot;WSAEADDRINUSE&quot;;
                case WSAEADDRNOTAVAIL:
                    return &quot;WSAEADDRNOTAVAIL&quot;;
                case WSAEFAULT:
                    return &quot;WSAEFAULT&quot;;
                case WSAEINPROGRESS:
                    return &quot;WSAEINPROGRESS&quot;;
                case WSAEINVAL:
                    return &quot;WSAEINVAL&quot;;
                case WSAENOBUFS:
                    return &quot;WSAENOBUFS&quot;;
                case WSAENOTSOCK:
                    return &quot;WSAENOTSOCK&quot;;
             }
        }
};
</code></pre>
<p>Im main.cpp include ich nun das Header-File mit der folgenden Zeile:</p>
<pre><code class="language-cpp">#include &quot;SocketTools.h&quot;
</code></pre>
<p>Nun kommen wir zu meinem Problem. Das Problem tritt bei der Instanzierung der Klasse auf. So wie ich dies bis jetzt aus C# kenne, kann ich dies so instanzieren und danach benutzen:</p>
<pre><code class="language-cpp">SocketTools* socketTools = new SocketTools;
socketTools-&gt;ParseSocketError((unsigned int)error);
</code></pre>
<p>In diesen Zeilen kriege ich vom Compiler (GCC) die Fehlermeldung:<br />
undefined reference to <code>SocketTools::SocketTools() undefined reference to</code>SocketTools::ParseSocketError(unsigned int)</p>
<p>Aber warum ? Ich habe diese Methoden ja im Header File angegeben und im Source File auscodiert ? Was mache ich falsch ? Verstehe ich etwas im Aufbau nicht richtig ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255183/umstieg-von-c-auf-c</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 05:07:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255183.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Nov 2009 20:23:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Umstieg von C# auf C++ on Thu, 26 Nov 2009 20:23:41 GMT]]></title><description><![CDATA[<p>Guten Tag miteinander,</p>
<p>Also zuerst mal etwas zu meinen Kenntnissen.<br />
Die letzten 3 1/2 Jahre wurde ich auf C# ausgebildet. Während der Ausbildung bekam ich auch Einsicht in andere Programmiersprachen wie VB oder JAVA. Dies sind jedoch alles Top-Level Sprachen.</p>
<p>Daher begann ich mich mit c++ auseinander zu setzen, aber ich scheitere schon bei den Grundlagen und möchte hier um ein wenig Hilfe bitten.</p>
<p>Das es ein Forum für Windows-Programmierung gibt habe ich gesehen. Im Code verwende ich die WinSock2.h jedoch hat meine Frage nichts spezifisch mit der Socket Programmierung zu tun sondern mit c++ im allgemeinen.</p>
<p>Ich habe eine Klasse in einem eigenen .cpp-File. Dazu habe ich wie es sich gehört ein .h File erstellt wo die Definitionen abgelegt sind.</p>
<p>Diese Files sehen so aus:<br />
.h</p>
<pre><code class="language-cpp">#ifndef SOCKETTOOLS_H_INCLUDED
#define SOCKETTOOLS_H_INCLUDED
#include &lt;iostream&gt;
#include &lt;WinSock2.h&gt;
class SocketTools
{
    public:
        SocketTools();
        ~SocketTools();
        char* ParseSocketError(unsigned int u_intError);

};

#endif // SOCKETTOOLS_H_INCLUDED
</code></pre>
<p>.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;WinSock2.h&gt;

class SocketTools
{
    public:
        SocketTools()
        {

        }
        ~SocketTools()
        {

        }
        char* ParseSocketError(unsigned int u_intError)
        {
            switch(u_intError)
            {
                case WSANOTINITIALISED:
                    return &quot;WSANOTINITIALISED&quot;;
                case WSAENETDOWN:
                    return &quot;WSAENETDOWN&quot;;
                case WSAEACCES:
                   return &quot;WSAEACCES&quot;;
                case WSAEADDRINUSE:
                    return &quot;WSAEADDRINUSE&quot;;
                case WSAEADDRNOTAVAIL:
                    return &quot;WSAEADDRNOTAVAIL&quot;;
                case WSAEFAULT:
                    return &quot;WSAEFAULT&quot;;
                case WSAEINPROGRESS:
                    return &quot;WSAEINPROGRESS&quot;;
                case WSAEINVAL:
                    return &quot;WSAEINVAL&quot;;
                case WSAENOBUFS:
                    return &quot;WSAENOBUFS&quot;;
                case WSAENOTSOCK:
                    return &quot;WSAENOTSOCK&quot;;
             }
        }
};
</code></pre>
<p>Im main.cpp include ich nun das Header-File mit der folgenden Zeile:</p>
<pre><code class="language-cpp">#include &quot;SocketTools.h&quot;
</code></pre>
<p>Nun kommen wir zu meinem Problem. Das Problem tritt bei der Instanzierung der Klasse auf. So wie ich dies bis jetzt aus C# kenne, kann ich dies so instanzieren und danach benutzen:</p>
<pre><code class="language-cpp">SocketTools* socketTools = new SocketTools;
socketTools-&gt;ParseSocketError((unsigned int)error);
</code></pre>
<p>In diesen Zeilen kriege ich vom Compiler (GCC) die Fehlermeldung:<br />
undefined reference to <code>SocketTools::SocketTools() undefined reference to</code>SocketTools::ParseSocketError(unsigned int)</p>
<p>Aber warum ? Ich habe diese Methoden ja im Header File angegeben und im Source File auscodiert ? Was mache ich falsch ? Verstehe ich etwas im Aufbau nicht richtig ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1813993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1813993</guid><dc:creator><![CDATA[k3n0b1]]></dc:creator><pubDate>Thu, 26 Nov 2009 20:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to Umstieg von C# auf C++ on Thu, 26 Nov 2009 20:25:51 GMT]]></title><description><![CDATA[<p>die beiden includes im header sind sinnlos</p>
<p>im source musst du nur den header includieren aber darfst nicht noch mal die struktur abbilden, eine fkt geht so zu implementieren:</p>
<pre><code class="language-cpp">SocketTools::SocketTools()
{}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1813994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1813994</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 26 Nov 2009 20:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to Umstieg von C# auf C++ on Thu, 26 Nov 2009 20:29:48 GMT]]></title><description><![CDATA[<p>Ja auch darüber bin ich auch schon gestolpert.<br />
Also über die Schreibweise</p>
<pre><code class="language-cpp">SocketTools::SocketTools()
{

}
</code></pre>
<p>Jedoch habe ich das so verstanden, dass ich eine Funktion so ausprogrammeiren muss wenn ich sie nicht innerhalb der Klassen Definition schreibe sprich innerhalb dieser Code Zeilen schreibe.</p>
<pre><code class="language-cpp">class SocketTools
{
  //Functions
};
</code></pre>
<p>Habe ich dies falsch verstanden ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1813998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1813998</guid><dc:creator><![CDATA[k3n0b1]]></dc:creator><pubDate>Thu, 26 Nov 2009 20:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to Umstieg von C# auf C++ on Thu, 26 Nov 2009 20:31:10 GMT]]></title><description><![CDATA[<p>&quot;Habe ich dies falsch verstanden ?&quot;<br />
Japp - nehm dir mal noch mal das (C++-)Buch deiner Wahl vor, dort sollte das alles beschrieben und erklärt stehen - besser, als ich das jz kann...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814000</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 26 Nov 2009 20:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Umstieg von C# auf C++ on Thu, 26 Nov 2009 20:32:12 GMT]]></title><description><![CDATA[<p>Ok, danke für die wirklich sehr schnelle Hilfe ! Top ! <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 />
Komme hier gern wiedereinmal vorbei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814002</guid><dc:creator><![CDATA[k3n0b1]]></dc:creator><pubDate>Thu, 26 Nov 2009 20:32:12 GMT</pubDate></item><item><title><![CDATA[Reply to Umstieg von C# auf C++ on Thu, 26 Nov 2009 20:32:27 GMT]]></title><description><![CDATA[<p>Nein, aber die Funktionsdefinition ist ja nicht innerhalb der Klassendeklaration, denn die ist im Header. Du kannst die Klasse nicht einfach nochmal deklarieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814003</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Thu, 26 Nov 2009 20:32:27 GMT</pubDate></item></channel></rss>