<?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[Initialisierung einer CBitmap]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne im Konstruktor einer Klasse ein CBitmap-Member initialisieren und bin ein wenig ratlos, wie das korrekt erfolgen sollte.</p>
<p>Einfach per Zuweisung geht es ja nicht:</p>
<pre><code class="language-cpp">//A.h
class A
{
public:
    A(const CBitmap&amp; pic);
private:
    CBitmap m_pic;
}

//A.cpp
A::A(const CBitmap&amp; pic)
{
    m_pic = pic;
}
</code></pre>
<p>Ich habe es folgendermaßen probiert:</p>
<pre><code class="language-cpp">//A.h
class A
{
public:
    A(CBitmap pic);
private:
    CBitmap m_pic;
}

//A.cpp
A::A(CBitmap pic)
{
    BITMAP temp;
    pic.GetBitmap(&amp;temp);
    m_pic.CreateBitmapIndirect(&amp;temp);
}
</code></pre>
<p>Allerdings gefällt mir das nicht sonderlich:<br />
1. Muss es so &quot;um drei Ecken&quot; sein?<br />
2. Nach meinem Verständnis würde ich eigentlich lieber</p>
<pre><code class="language-cpp">A::A(const CBitmap&amp; pic)
</code></pre>
<p>schreiben (da kein Grunddatentyp), allerdings ist CBitmap::GetBitmap() offensichtlich nicht const und mein Compiler meckert dann entsprechend. Verzichte ich dann halt auf const &amp;?</p>
<p>Wie sieht denn eine saubere Lösung aus? Oder ist das in Ordnung so???</p>
<p>Danke schonmal vorab!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176514/initialisierung-einer-cbitmap</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 10:59:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176514.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Mar 2007 21:39:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Initialisierung einer CBitmap on Wed, 21 Mar 2007 21:39:12 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne im Konstruktor einer Klasse ein CBitmap-Member initialisieren und bin ein wenig ratlos, wie das korrekt erfolgen sollte.</p>
<p>Einfach per Zuweisung geht es ja nicht:</p>
<pre><code class="language-cpp">//A.h
class A
{
public:
    A(const CBitmap&amp; pic);
private:
    CBitmap m_pic;
}

//A.cpp
A::A(const CBitmap&amp; pic)
{
    m_pic = pic;
}
</code></pre>
<p>Ich habe es folgendermaßen probiert:</p>
<pre><code class="language-cpp">//A.h
class A
{
public:
    A(CBitmap pic);
private:
    CBitmap m_pic;
}

//A.cpp
A::A(CBitmap pic)
{
    BITMAP temp;
    pic.GetBitmap(&amp;temp);
    m_pic.CreateBitmapIndirect(&amp;temp);
}
</code></pre>
<p>Allerdings gefällt mir das nicht sonderlich:<br />
1. Muss es so &quot;um drei Ecken&quot; sein?<br />
2. Nach meinem Verständnis würde ich eigentlich lieber</p>
<pre><code class="language-cpp">A::A(const CBitmap&amp; pic)
</code></pre>
<p>schreiben (da kein Grunddatentyp), allerdings ist CBitmap::GetBitmap() offensichtlich nicht const und mein Compiler meckert dann entsprechend. Verzichte ich dann halt auf const &amp;?</p>
<p>Wie sieht denn eine saubere Lösung aus? Oder ist das in Ordnung so???</p>
<p>Danke schonmal vorab!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250130</guid><dc:creator><![CDATA[Nanuq]]></dc:creator><pubDate>Wed, 21 Mar 2007 21:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierung einer CBitmap on Thu, 22 Mar 2007 13:15:20 GMT]]></title><description><![CDATA[<p>...ist das so schlecht, dass es keinen Kommentar wert ist? Macht man das vielleicht tatsächlich so?</p>
<p>Vielleicht noch einmal die Aufgabenstellung.<br />
Eine Klasse hat ein CBitmpap-Member, das ich mit einer dem Konstruktor übergebenen Bitmap initialisieren möchte.</p>
<p>Würde mich über ein paar Tips freuen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250456</guid><dc:creator><![CDATA[Nanuq]]></dc:creator><pubDate>Thu, 22 Mar 2007 13:15:20 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierung einer CBitmap on Thu, 22 Mar 2007 13:44:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
public:
    A(const CBitmap&amp; pic);
private:
    CBitmap m_pic;
}

//A.cpp
A::A(const CBitmap&amp; pic) : m_pic(pic)
{
}
</code></pre>
<p>habs nicht getestet ... aber normal sollte das so gehen ...</p>
<p><strong>Edit</strong><br />
Sonnst sag mal die genaue Fehlermeldung die der dann bringt ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250482</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 22 Mar 2007 13:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierung einer CBitmap on Thu, 22 Mar 2007 13:54:09 GMT]]></title><description><![CDATA[<p>Es gibt in CBitmap kein op= und kein Konstruktor, welcher ein CBitmap erwartet, also ist deine Lösung wohl schon korrekt. Man kann natürlich ein paar Dinge anderst schreiben. Wenn du z.b. dem User ganz klar sagen möchtest, dass du nichts am Bitmap, welches er übergibt veränderst, dann mache es doch so:</p>
<pre><code class="language-cpp">A::A(const HBITMAP&amp; refhBitmap)
{
    m_pic.CreateBitmapIndirect(&amp;refhBitmap)
}
</code></pre>
<p>Da CBitmap sogar ein (HBITMAP) operator hat, könntest du womöglich sogar dem Konstruktor dann gleich ein CBitmap übergeben. Er holt sich dann gleich das HBITMAP selber.</p>
<p>@(D)Evil<br />
Problem ist, CBitmap hat kein Konstruktor, welches ein CBitmap erwartet, so dumm es auch ist ^^</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250492</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 22 Mar 2007 13:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierung einer CBitmap on Thu, 22 Mar 2007 13:58:55 GMT]]></title><description><![CDATA[<p>Mit Initialisierungsliste habe ich es auch probiert, das funktioniert aber genausowenig wie die Verwendung des Zuweisungsoperators.<br />
Mit dem Wortlaut der Fehlermeldung kann ich aktuell nicht dienen, allerdings kriege ich sowohl im Fall der Initialisierungsliste als auch bei Verwendung des Zuweisungsoperators einen &quot;error c2248: cannot access private member of ...&quot;<br />
(mit Verweisen auf CGdiObject bzw. CObject).</p>
<p>Das habe ich dazu gefunden:<br />
<a href="http://msdn2.microsoft.com/en-us/library/tsbce2bh(vs.71).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/tsbce2bh(vs.71).aspx</a></p>
<p>Für mich sieht es so aus als ob sowohl der Zuweisungsoperator als auch der Konstruktor von CObject private sind...</p>
<p>Exakte Fehlermeldung kann ich ggf. später nachreichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250499</guid><dc:creator><![CDATA[Nanuq]]></dc:creator><pubDate>Thu, 22 Mar 2007 13:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierung einer CBitmap on Thu, 22 Mar 2007 14:03:13 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9752">@Dravere</a><br />
Danke für den Tip, so habe ich tatsächlich zumindest mein gewünschtes const &amp; <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>Werde es mal probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1250505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1250505</guid><dc:creator><![CDATA[Nanuq]]></dc:creator><pubDate>Thu, 22 Mar 2007 14:03:13 GMT</pubDate></item></channel></rss>