<?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[Methoden überladen Problem]]></title><description><![CDATA[<p>Ich hab irgendwie n kleines Problem mit Methoden überladen, der Compiler meint das es nicht &quot;eindeutig&quot; ist. Aber warum ist es nicht eindeutig? Was muss ich machen damit es eindeutig wird. Ich will das man meine Methode in der Form aufrufen kann &quot;read_in(1222);&quot; ohne Typumwandlung....(wenn das irgendwie geht <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="🙂"
    /> ). Aber warum nicht &quot;eindeutig&quot;?<br />
Hier der Code:</p>
<p>streamwork.hpp</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;string&gt;

namespace sw
{
    enum ifof {reading,writing};

    class Streamwork
    {
        public:
        Streamwork(const std::string &amp;file_name, ifof mode, bool clear=true);
        ifof mod() const; //derzeitiger modus?
        bool lg() const; //looking good?
        bool read_in(unsigned short value);
        bool read_in(unsigned long value);
        bool read_out(unsigned short save) {}; //stub
        bool read_out(unsigned long save) {}; //stub

        private:
        bool open_stream(const std::string &amp;file_name, ifof mode, bool clear=true);
        void close_stream();
        bool ch_mod(); //change mode

        const std::string m_file_name;
        ifof m_mode;
        std::fstream m_file;
    };
}
</code></pre>
<p>streamwork.cpp<br />
(ganz unten letzte beide Methoden)</p>
<pre><code class="language-cpp">#include &quot;streamwork.hpp&quot;
#include &lt;string&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;

using namespace std;

namespace sw
{
    Streamwork::Streamwork(const std::string &amp;file_name, ifof mode, bool clear)
    :m_file_name(file_name),m_mode(mode)
    {
        open_stream(file_name,mode,clear);
    }

    bool Streamwork::open_stream(const string &amp;file_name, ifof mode, bool clear)
    {
        if(clear) m_file.open(file_name.c_str(),(mode) ? (ios::binary | ios::in) : (ios::binary | ios::out));
        else m_file.open(file_name.c_str(),(mode) ? (ios::binary | ios::in | ios::ate) : (ios::binary | ios::out | ios::app));
        return m_file;
    }

    void Streamwork::close_stream()
    {
        m_file.close();
    }

    ifof Streamwork::mod() const
    {
        return m_mode;
    }

    bool Streamwork::lg() const
    {
        return m_file;
    }

    bool Streamwork::ch_mod()
    {
        close_stream();
        if((m_mode+1) &gt; 1) m_mode=reading;
        else m_mode=writing;
        return open_stream(m_file_name,m_mode);
    }

    //UM DIE BEIDEN METHODEN GEHT ES
    bool Streamwork::read_in(unsigned short value) //!!!
    {
        std::cout &lt;&lt; &quot;JETZT KOMMEN 2 BYTE!\n&quot;;
        if(m_mode != reading) ch_mod();
        m_file.write(reinterpret_cast&lt;char*&gt;(&amp;value),sizeof(unsigned short)); //2 Byte
        return m_file;
    }

    bool Streamwork::read_in(unsigned long value) //!!!
    {
        std::cout &lt;&lt; &quot;JETZT KOMMEN 4BYTE!\n&quot;;
        if(m_mode != reading) ch_mod();
        m_file.write(reinterpret_cast&lt;char*&gt;(&amp;value),sizeof(unsigned long)); //4 Byte
        return m_file;
    }
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;streamwork.hpp&quot;

using namespace sw;

int main()
{
    Streamwork test(&quot;H:/test.oop&quot;,reading,false);
    unsigned short a=13353;
    test.read_in(a); //Warum gehts nur so?
    test.read_in(1200); //Und nicht so?

	return 0;
}
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207799/methoden-überladen-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 10:54:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207799.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Mar 2008 20:37:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Methoden überladen Problem on Tue, 11 Mar 2008 20:37:16 GMT]]></title><description><![CDATA[<p>Ich hab irgendwie n kleines Problem mit Methoden überladen, der Compiler meint das es nicht &quot;eindeutig&quot; ist. Aber warum ist es nicht eindeutig? Was muss ich machen damit es eindeutig wird. Ich will das man meine Methode in der Form aufrufen kann &quot;read_in(1222);&quot; ohne Typumwandlung....(wenn das irgendwie geht <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="🙂"
    /> ). Aber warum nicht &quot;eindeutig&quot;?<br />
Hier der Code:</p>
<p>streamwork.hpp</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;string&gt;

namespace sw
{
    enum ifof {reading,writing};

    class Streamwork
    {
        public:
        Streamwork(const std::string &amp;file_name, ifof mode, bool clear=true);
        ifof mod() const; //derzeitiger modus?
        bool lg() const; //looking good?
        bool read_in(unsigned short value);
        bool read_in(unsigned long value);
        bool read_out(unsigned short save) {}; //stub
        bool read_out(unsigned long save) {}; //stub

        private:
        bool open_stream(const std::string &amp;file_name, ifof mode, bool clear=true);
        void close_stream();
        bool ch_mod(); //change mode

        const std::string m_file_name;
        ifof m_mode;
        std::fstream m_file;
    };
}
</code></pre>
<p>streamwork.cpp<br />
(ganz unten letzte beide Methoden)</p>
<pre><code class="language-cpp">#include &quot;streamwork.hpp&quot;
#include &lt;string&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;

using namespace std;

namespace sw
{
    Streamwork::Streamwork(const std::string &amp;file_name, ifof mode, bool clear)
    :m_file_name(file_name),m_mode(mode)
    {
        open_stream(file_name,mode,clear);
    }

    bool Streamwork::open_stream(const string &amp;file_name, ifof mode, bool clear)
    {
        if(clear) m_file.open(file_name.c_str(),(mode) ? (ios::binary | ios::in) : (ios::binary | ios::out));
        else m_file.open(file_name.c_str(),(mode) ? (ios::binary | ios::in | ios::ate) : (ios::binary | ios::out | ios::app));
        return m_file;
    }

    void Streamwork::close_stream()
    {
        m_file.close();
    }

    ifof Streamwork::mod() const
    {
        return m_mode;
    }

    bool Streamwork::lg() const
    {
        return m_file;
    }

    bool Streamwork::ch_mod()
    {
        close_stream();
        if((m_mode+1) &gt; 1) m_mode=reading;
        else m_mode=writing;
        return open_stream(m_file_name,m_mode);
    }

    //UM DIE BEIDEN METHODEN GEHT ES
    bool Streamwork::read_in(unsigned short value) //!!!
    {
        std::cout &lt;&lt; &quot;JETZT KOMMEN 2 BYTE!\n&quot;;
        if(m_mode != reading) ch_mod();
        m_file.write(reinterpret_cast&lt;char*&gt;(&amp;value),sizeof(unsigned short)); //2 Byte
        return m_file;
    }

    bool Streamwork::read_in(unsigned long value) //!!!
    {
        std::cout &lt;&lt; &quot;JETZT KOMMEN 4BYTE!\n&quot;;
        if(m_mode != reading) ch_mod();
        m_file.write(reinterpret_cast&lt;char*&gt;(&amp;value),sizeof(unsigned long)); //4 Byte
        return m_file;
    }
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;streamwork.hpp&quot;

using namespace sw;

int main()
{
    Streamwork test(&quot;H:/test.oop&quot;,reading,false);
    unsigned short a=13353;
    test.read_in(a); //Warum gehts nur so?
    test.read_in(1200); //Und nicht so?

	return 0;
}
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472393</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Tue, 11 Mar 2008 20:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Tue, 11 Mar 2008 21:04:41 GMT]]></title><description><![CDATA[<p>Der Compiler sieht bei deiner Konstante ja nur einen int Wert, und weiß nicht ob er ihn in ein short oder in einer long umwandeln soll.</p>
<p>Abhilfe schafft ein Postfix für deine Zahl wie z.b.:</p>
<pre><code class="language-cpp">75         // int
75u        // unsigned int
75l        // long
75ul       // unsigned long
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1472410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472410</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Tue, 11 Mar 2008 21:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Tue, 11 Mar 2008 21:13:12 GMT]]></title><description><![CDATA[<p>Und was ist das Kürzel bei short? Bei &quot;us&quot; kommt bei mir n Fehler...inalid suffix.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;streamwork.hpp&quot;

using namespace sw;

int main()
{
    Streamwork test(&quot;H:/test.oop&quot;,reading,false);
    unsigned short a=13353;
    test.read_in(a); //Warum gehts nur so?
    test.read_in(1200us); //Und nicht so?

	return 0;
}
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472419</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Tue, 11 Mar 2008 21:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Wed, 12 Mar 2008 19:56:22 GMT]]></title><description><![CDATA[<p>Gibts für &quot;short&quot; gar kein Kürzel?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473243</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 12 Mar 2008 19:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Wed, 12 Mar 2008 20:36:30 GMT]]></title><description><![CDATA[<p><a href="http://msdn2.microsoft.com/en-us/library/c70dax92.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/c70dax92.aspx</a><br />
<a href="http://msdn2.microsoft.com/en-us/library/00a1awxf.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/00a1awxf.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473259</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 12 Mar 2008 20:36:30 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Wed, 12 Mar 2008 21:28:46 GMT]]></title><description><![CDATA[<p>Ich finde da nichts über short suffixes.</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473324</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Wed, 12 Mar 2008 21:28:46 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Thu, 13 Mar 2008 17:25:35 GMT]]></title><description><![CDATA[<p>Gibts also keine?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473805</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Thu, 13 Mar 2008 17:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden überladen Problem on Thu, 13 Mar 2008 17:36:44 GMT]]></title><description><![CDATA[<p>Und ein static_cast&lt;&gt; ist Dir zu unsauber?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1473815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1473815</guid><dc:creator><![CDATA[witte_]]></dc:creator><pubDate>Thu, 13 Mar 2008 17:36:44 GMT</pubDate></item></channel></rss>