<?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[const variable in Klasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum muss eine const VAriable unumgänglich nur über die INitialisierungsliste<br />
definiert werden ? könnte man doch gleich</p>
<pre><code class="language-cpp">class a{

private:

const int variable=7;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/268525/const-variable-in-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:53:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268525.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jun 2010 13:06:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:06:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum muss eine const VAriable unumgänglich nur über die INitialisierungsliste<br />
definiert werden ? könnte man doch gleich</p>
<pre><code class="language-cpp">class a{

private:

const int variable=7;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1910025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910025</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:09:55 GMT]]></title><description><![CDATA[<p>In C++0x wird so etwas gehen (auch ohne const) -- soweit ich weiß.</p>
<p>Ich kann mich aber nicht erinnern, jemals const auf diese Art in einer Klasse vernünftig benutzt zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910028</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:11:04 GMT]]></title><description><![CDATA[<p>Weil sie dann in jedem Objekt dieser Klasse den gleichen Wert hätten. Was du beschreibst sind static const Variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910029</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:13:32 GMT]]></title><description><![CDATA[<p>stimmt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1910031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910031</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:13:32 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:33:26 GMT]]></title><description><![CDATA[<p>hätte noch eine Frage.<br />
Was ist ein Kovertierungskonstruktor ?<br />
z.B.</p>
<pre><code class="language-cpp">class Komplex
   {
     private:
       double re, im;

     public:
       Komplex(void)
       {
         re = im = 0.0;
       }
       // Typumwandlungskonstruktor double -&gt; Komplex
       Komplex(double r)
       {
         re = r;
         im = 0.0;
       }

       // weitere moegliche Alternativen:
       //   Komplex(const double r);
       //   Komplex(double &amp; r);
       //   Komplex(const double &amp; r);

       // Typumwandlung double * in Komplex:
       //   Komplex(double * r);
       ...
   };
Versteh nicht wozu der gut sein soll
</code></pre>
<p>Ich seh keinen Unterschied zum normalen Konstruktor. Der sieht doch genauso aus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910047</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:45:15 GMT]]></title><description><![CDATA[<p>Jeder Konstruktor, der nicht mit <code>explicit</code> markiert wurde und mit &quot;einem Parameter aufrufbar&quot; ist, kann automatisch (also implizit) zur Konvertierung in einer sogenannten &quot;Kopierinitialisierung&quot; verwendet werden:</p>
<pre><code class="language-cpp">class complex {
  double real_;
  double imag_;
public:
  complex(double r=0, double i=0) : real_(r), imag_(i) {}
};

void foo(complex t);

int main() {
  complex c = 23; // Kopierinitialisierung von c
  foo(42); // Kopierinitialisierung des Parameters t
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1910057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910057</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:45:53 GMT]]></title><description><![CDATA[<p>naja - er wird meist so ähnlich aussehen, wie der &quot;normale konstruktor&quot; (=standard ctor)</p>
<p>stichworte zum verbessern deiner klasse wären:<br />
initialisierungsliste<br />
explicit</p>
<pre><code class="language-cpp">struct komplex
{
 komplex() //das void in klammern lässt man in c++ üblicherweise weg
 : im(0.), re(0.) //initailisierungsliste - 0. ist kurz für 0.0 und das ist die double-0. sonst würde erst noch eine konvertierung von int in double geschehen, was dir ein compiler als warnung ausgeben könnte
 {}

 komplex(double real)
 : im(0.), re(real)
 {}

 komplex(double real, double imag)
 : im(imag), re(real)
 {}

private:
 double im;
 double re;
};
</code></pre>
<p>uns fällt nun auf, dass alle 3 konstruktoren fast identisch sind, also wieso 3 verschiedene?</p>
<pre><code class="language-cpp">struct komplex
{
  komplex(double re = 0., double im = 0.)
  : re(re), im(im)
  {}

private:
  double re;
  double im;
};
</code></pre>
<p>ich würde den konstruktor hier nicht explicit machen, aber das ist wohl geschmackssache, deshalb hatte ich es mal erwähnt.</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910059</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 13:59:20 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct komplex 
{ 
  komplex(double re = 0., double im = 0.) 
  : re(re), im(im) 
  {} 

private: 
  double re; 
  double im; 
};
</code></pre>
<p>aha und wo ist jetzt der Konvertierungskonstruktor ?<br />
sowohl re also im sind vom typ double. Kommt der Konvertierungskonstruktor<br />
wenn ich z.B einen int übergebe oder wann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910065</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 13:59:20 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 14:08:36 GMT]]></title><description><![CDATA[<p>das ist der konvertierungs-konstruktor:</p>
<pre><code class="language-cpp">struct komplex
{
  komplex(double r = 0., double i = 0.)
  : r(r), i(i)
  {}

private:
  double r, i;
};
</code></pre>
<p>dieser eine konstruktor kann all das hier:</p>
<pre><code class="language-cpp">int main()
{
  komplex c0;
  komplex c1(1.5); //deine gewünschte konvertierung
  komplex c2(1.5, 1.0);
}
</code></pre>
<p>oder um es vll klarer zu machen:</p>
<pre><code class="language-cpp">komplex function()
{
  double return_value = 2.0;

  return return_value; //hier wird der ctor komplex(double,double) aufgerufen. mit den werten(2.0, 0.0)
}
</code></pre>
<p>ist ein dummes bsp., aber daran sollte es klar werden!?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910071</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 10 Jun 2010 14:08:36 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 14:20:55 GMT]]></title><description><![CDATA[<p>ok danke.<br />
aber mir ist einfach nicht klar warum ich konvertieren muss.</p>
<p>der Konstruktor verlangt einen double Wert. Und er bekommt doch auch einen.</p>
<pre><code class="language-cpp">komplex c1(1.5); //deine gewünschte konvertierung
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void funkt(double x) {  }  

void main(void)  {

int x;

  funkt((double)x);  // hier wird konvertiert

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1910083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910083</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 10 Jun 2010 14:20:55 GMT</pubDate></item><item><title><![CDATA[Reply to const variable in Klasse on Thu, 10 Jun 2010 14:49:07 GMT]]></title><description><![CDATA[<p>ja, der konstruktor bekommt einen double wert und konstruiert daraus dein objekt(in diesem fall eine komplexe zahl).</p>
<p>damit konvertiert er einen double in eine komplexe zahl.</p>
<p>natürlich ist auch die umwandlung von int in double eine konvertierung, aber die geschieht ohnehin automatisch(das kennt dein compiler schon - aber eine konvertierung von double/int/... in eine selbst geschriebene klasse... kann er ja kaum erraten - und genau deshalb muss man ihn dort schreiben, wenn man ihn haben möchte)</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910099</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 10 Jun 2010 14:49:07 GMT</pubDate></item></channel></rss>