<?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[[solved] dynam. Bindung kaputt???]]></title><description><![CDATA[<p>hi,</p>
<p>ich steh scheinbar grad vollends auf der leitung. wieso funktioniert in diesem fall die dynamische bindung nicht?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Base
{
public:
	Base()				{	this-&gt;Init();	}
	virtual ~Base()		{}

	virtual void Init() = 0;
};

void Base::Init()
{
	std::cout &lt;&lt; &quot;init base&quot; &lt;&lt; std::endl;
}

class Derived : public Base
{
public:
	Derived()	{}
	~Derived()	{}

	void Init();
};

void Derived::Init()
{
	std::cout &lt;&lt; &quot;init derived&quot; &lt;&lt; std::endl;
}

int main( const int argc, const char** args )
{
	Derived *derived = new Derived();

	return 0;
}
</code></pre>
<p>ausgabe:</p>
<blockquote>
<p>init base</p>
</blockquote>
<p>wth??<br />
was mich auch stark verstört ist, dass ich die als abstrakt gekennzeichnete methode der basisklasse definieren kann - und sogar MUSS da ich sonst 'nen linker error bekomme.</p>
<p>plötzlich funktionieren die einfachsten mechanismen nicht mehr? was ist da los??</p>
<p>*edit*<br />
ms vs2005 sp1 btw...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183964/solved-dynam-bindung-kaputt</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 14:27:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183964.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 10 Jun 2007 23:21:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Thu, 20 Mar 2008 09:32:32 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich steh scheinbar grad vollends auf der leitung. wieso funktioniert in diesem fall die dynamische bindung nicht?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Base
{
public:
	Base()				{	this-&gt;Init();	}
	virtual ~Base()		{}

	virtual void Init() = 0;
};

void Base::Init()
{
	std::cout &lt;&lt; &quot;init base&quot; &lt;&lt; std::endl;
}

class Derived : public Base
{
public:
	Derived()	{}
	~Derived()	{}

	void Init();
};

void Derived::Init()
{
	std::cout &lt;&lt; &quot;init derived&quot; &lt;&lt; std::endl;
}

int main( const int argc, const char** args )
{
	Derived *derived = new Derived();

	return 0;
}
</code></pre>
<p>ausgabe:</p>
<blockquote>
<p>init base</p>
</blockquote>
<p>wth??<br />
was mich auch stark verstört ist, dass ich die als abstrakt gekennzeichnete methode der basisklasse definieren kann - und sogar MUSS da ich sonst 'nen linker error bekomme.</p>
<p>plötzlich funktionieren die einfachsten mechanismen nicht mehr? was ist da los??</p>
<p>*edit*<br />
ms vs2005 sp1 btw...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1302833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1302833</guid><dc:creator><![CDATA[iko79]]></dc:creator><pubDate>Thu, 20 Mar 2008 09:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Sun, 10 Jun 2007 23:42:27 GMT]]></title><description><![CDATA[<p>Müsste das nicht heissen tun:</p>
<p>Derived *derived = new Derived;</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1302835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1302835</guid><dc:creator><![CDATA[pscht]]></dc:creator><pubDate>Sun, 10 Jun 2007 23:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 00:56:00 GMT]]></title><description><![CDATA[<p>komplett wurscht, leere parameterliste. und ja, a speicherleck hab i auch ;p</p>
<p>*edith*</p>
<p>poah, is das krank, auf was ma alles aufpassen soll. für all jene, die's wie ich auch nicht wussten:</p>
<p><a href="http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/cplr142.htm" rel="nofollow">http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/cplr142.htm</a></p>
<blockquote>
<p>You can call member functions from a constructor or destructor of an abstract class. However, the results of calling (directly or indirectly) a pure virtual function from its constructor are undefined. The following example demonstrates this:</p>
<pre><code class="language-cpp">struct A {
  A() {
    direct();
    indirect();
  }
  virtual void direct() = 0;
  virtual void indirect() { direct(); }
};
</code></pre>
<p>The default constructor of A calls the pure virtual function direct() both directly and indirectly (through indirect()).</p>
<p>The compiler issues a warning for the direct call to the pure virtual function, but not for the indirect call.</p>
</blockquote>
<p>ma lernt nie aus. die indireken calls sind aber gscheit gefährlich würd i mal sagen =[ so ähnlich dürfte der &quot;pure virtual function call&quot; im avid zustande gekommen sein, den i vor a paar wochen hatte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title="=D"
      alt="😃"
    /></p>
<p>allerdings erklärt das noch immer nicht so ganz, dass auch dann nicht korrekt aufgelöst wird wenn die methode NICHT als abstrakt deklariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1302836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1302836</guid><dc:creator><![CDATA[iko79]]></dc:creator><pubDate>Mon, 11 Jun 2007 00:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 04:43:14 GMT]]></title><description><![CDATA[<p>iko79 schrieb:</p>
<blockquote>
<p>allerdings erklärt das noch immer nicht so ganz, dass auch dann nicht korrekt aufgelöst wird wenn die methode NICHT als abstrakt deklariert.</p>
</blockquote>
<p>Wenn der Base-Konstruktor ausgeführt wird ist, hast du noch gar kein Derived-Objekt, nur ein Base-Objekt. Der Derived-&quot;Teil&quot; des Objekts wird erst danach konstruiert.</p>
<p>Deswegen ist es ziemlich sinnlos, virtuelle Funktionen im CTor oder DTor aufzurufen. Das wurde hier schon hundertfach durchgekaut. Mich wundert, dass der IBM-Artikel das nicht mal erwähnt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1302854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1302854</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 11 Jun 2007 04:43:14 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 10:47:55 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Wenn der Base-Konstruktor ausgeführt wird ist, hast du noch gar kein Derived-Objekt, nur ein Base-Objekt.</p>
</blockquote>
<p>das wundert mich insofern, als dass basisklassenkonstruktorer ja rekursiv von den übergeordneten aufgerufen werden und deshalb bereits bekannt ist, um welches objekt es sich handelt. also logisch find ich das ja nicht. wissen muss mans halt.</p>
<p>MFK schrieb:</p>
<blockquote>
<p>Deswegen ist es ziemlich sinnlos, virtuelle Funktionen im CTor oder DTor aufzurufen.</p>
</blockquote>
<p>okay, das wusst' ich nicht. find ich aber ganzschön gefährlich.</p>
<p>MFK schrieb:</p>
<blockquote>
<p>Das wurde hier schon hundertfach durchgekaut.</p>
</blockquote>
<p>hab ich nicht gelesen - hier am laufenden zu bleiben bzw. alles zu lesen was man bis zum eintritt ins forum verpasst hat geht einfach nicht <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>dankedir!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303008</guid><dc:creator><![CDATA[iko79]]></dc:creator><pubDate>Mon, 11 Jun 2007 10:47:55 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 10:55:19 GMT]]></title><description><![CDATA[<p>iko79 schrieb:</p>
<blockquote>
<p>das wundert mich insofern, als dass basisklassenkonstruktorer ja rekursiv von den übergeordneten aufgerufen werden und deshalb bereits bekannt ist, um welches objekt es sich handelt. also logisch find ich das ja nicht. wissen muss mans halt.</p>
</blockquote>
<p>Bekannt ja, aber nicht konstruiert. Der Derived-Konstruktor ruft <strong>zuerst</strong> den Base-Konstruktor auf, bevor irgendwas anderes passiert. In Deinem Base-Konstruktor sind von Derived noch keine Member konstruiert worden, d.h. sie befinden sich alle in undefiniertem Zustand. Viel gravierender: Die Vtable von Derived (sofern bei der gegebenen Architektur vorhanden) ist auch noch nicht angelegt. Es kann also zur Laufzeit rein technisch schon kein Lookup gemacht werden. Rein logisch gesehen reicht aber eigentlich die Begründung &quot;Derived existiert einfach noch nicht&quot;.</p>
<blockquote>
<p>okay, das wusst' ich nicht. find ich aber ganzschön gefährlich.</p>
</blockquote>
<p>Stimmt schon. Der MSVC warnt hier wenigstens oder schmeisst einen Linkerfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303017</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 11 Jun 2007 10:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 10:58:45 GMT]]></title><description><![CDATA[<p>iko79 schrieb:</p>
<blockquote>
<p>das wundert mich insofern, als dass basisklassenkonstruktorer ja rekursiv von den übergeordneten aufgerufen werden und deshalb bereits bekannt ist, um welches objekt es sich handelt.</p>
</blockquote>
<p>Diese Information mag vorhanden sein. Das ändert aber nichts daran, dass der Konstruktor von Derived zu diesem Zeitpunk noch nicht ausgeführt wurde.</p>
<p>MFK schrieb:</p>
<blockquote>
<p>okay, das wusst' ich nicht. find ich aber ganzschön gefährlich.</p>
</blockquote>
<p>Die Alternative ist IMHO gefährlicher: Die Möglichkeit, eine Methode eines noch nicht konstruierten Objekts aufzurufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303019</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 11 Jun 2007 10:58:45 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 12:19:12 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>...</p>
<p>MFK schrieb:</p>
<blockquote>
<p>okay, das wusst' ich nicht. find ich aber ganzschön gefährlich.</p>
</blockquote>
<p>Die Alternative ist IMHO gefährlicher: Die Möglichkeit, eine Methode eines noch nicht konstruierten Objekts aufzurufen.</p>
</blockquote>
<p>Hi,</p>
<p>wie macht Java das denn eigentlich ? Die &quot;können&quot; das doch, oder ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303076</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 11 Jun 2007 12:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 12:23:42 GMT]]></title><description><![CDATA[<p>C# kanns auch. Wird eben erst die Methodentabelle aufgebaut und dann der Rest konstruiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303082</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Mon, 11 Jun 2007 12:23:42 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 12:34:16 GMT]]></title><description><![CDATA[<p>Helium schrieb:</p>
<blockquote>
<p>C# kanns auch. Wird eben erst die Methodentabelle aufgebaut und dann der Rest konstruiert.</p>
</blockquote>
<p>Genauergesagt werden erst Methodentabelle erstellt und Default-Konstruktionen durchgeführt (dazu gehören auch jene, die in der Klasse direkt mit Typ name = wert; aufgeführt sind), dann wird der Basisklassenkonstruktor durchgeführt, dann der eigene. Man kann in dieser Sprache also zumindest nachvollziehen, was zu dem Zeitpunkt definiert ist und was nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303103</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 11 Jun 2007 12:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 14:14:13 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Helium schrieb:</p>
<blockquote>
<p>C# kanns auch. Wird eben erst die Methodentabelle aufgebaut und dann der Rest konstruiert.</p>
</blockquote>
<p>Genauergesagt werden erst Methodentabelle erstellt und Default-Konstruktionen durchgeführt (dazu gehören auch jene, die in der Klasse direkt mit Typ name = wert; aufgeführt sind), dann wird der Basisklassenkonstruktor durchgeführt, dann der eigene. Man kann in dieser Sprache also zumindest nachvollziehen, was zu dem Zeitpunkt definiert ist und was nicht.</p>
</blockquote>
<p>Ich verstehe das nicht ganz ... es wird IMMER erst ein (ggf. automatischer) Default-Ctor ausgeführt ?</p>
<p>Magst Du das an einem simplen Beispiel mal erläutern ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303189</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 11 Jun 2007 14:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 14:16:26 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Helium schrieb:</p>
<blockquote>
<p>C# kanns auch. Wird eben erst die Methodentabelle aufgebaut und dann der Rest konstruiert.</p>
</blockquote>
<p>Genauergesagt werden erst Methodentabelle erstellt und Default-Konstruktionen durchgeführt (dazu gehören auch jene, die in der Klasse direkt mit Typ name = wert; aufgeführt sind), dann wird der Basisklassenkonstruktor durchgeführt, dann der eigene. Man kann in dieser Sprache also zumindest nachvollziehen, was zu dem Zeitpunkt definiert ist und was nicht.</p>
</blockquote>
<p>Ich verstehe das nicht ganz ... es wird IMMER erst ein (ggf. automatischer) Default-Ctor ausgeführt ?</p>
<p>Magst Du das an einem simplen Beispiel mal erläutern ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303191</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 11 Jun 2007 14:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:18:09 GMT]]></title><description><![CDATA[<p>java ruft immer den standard c-tor der oberklasse auf. wenn du also z.b. sowas hast</p>
<pre><code>class A extends B{
 A(){
  do();
 }
 do(){}
}
</code></pre>
<p>macht java da implizit ein</p>
<pre><code>class A extends B{
 A(){
  super();
  do();
 }
 do(){}
}
</code></pre>
<p>draus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303271</guid><dc:creator><![CDATA[javatyp]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:18:09 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:23:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class B : public A
{
   public:
     B() : A()
     {
        foo();
     }
     void foo()
     {}
};
</code></pre>
<p>Geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303278</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:25:28 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Ich verstehe das nicht ganz ... es wird IMMER erst ein (ggf. automatischer) Default-Ctor ausgeführt ?</p>
<p>Magst Du das an einem simplen Beispiel mal erläutern ?</p>
</blockquote>
<p>Sagen wir es werden IMMER erst alle Objekte Default-Initialisiert. Da Objekte meistens Referenztypen sind heisst das eigentlich nichts weiter als dass die Referenz auf null gesetzt wird. Bei Wertetypen ist es IMHO ein Default (also 0 bei numerischen Typen).</p>
<p>Hier mal ein Beispiel mit Initialisierungsreihenfolge:</p>
<pre><code class="language-csharp">public class Derived : Base 
{

    private MyRefType m_a; // implizit = null, (1)
    private List&lt;MyRefType&gt; m_b = new List&lt;MyRefType&gt;(); // explizit, (1)

    public Derived()
        // an dieser Stelle ist m_a == null und m_b schon != null und definiert
        : Base() // muss wie in C++ nur explizit geschehen wenn der Ctor Argumente verlangt, (2)
    {
        m_a = new MyRefType(); // (3)
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1303280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303280</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:27:37 GMT]]></title><description><![CDATA[<p>javatyp schrieb:</p>
<blockquote>
<p>java ruft immer den standard c-tor der oberklasse auf.</p>
</blockquote>
<p>Das macht C++ auch, wenn du keinen anderen Basis-Ctor in der Initialisierungsliste angegeben hast. Aber das ist auch gar nicht Thema der Frage.</p>
<p>Was würde Java bei so einem Konstrukt ausgeben?</p>
<pre><code class="language-java">class A
{
  void doit()
  { print(&quot;Basis&quot;); }

  A()
  { doit(); }
}

class B extends A
{
  void doit()
  { print(&quot;Abgeleitet&quot;); }

  B()
  {}
}
</code></pre>
<p>(wie oben erkannt wurde, gibt C++ bei dieser Konstellation &quot;Basis&quot; aus, weil im A-Ctor der B-Anteil noch nicht existiert)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303282</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:32:02 GMT]]></title><description><![CDATA[<p>In C# käme &quot;Abgeleitet&quot; auf den Schirm. Allerdings nur wenn man die Methode in Basis noch virtual markiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303290</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:34:37 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Was würde Java bei so einem Konstrukt ausgeben?</p>
<pre><code class="language-java">class A
{
  void doit()
  { print(&quot;Basis&quot;); }

  A()
  { doit(); }
}

class B extends A
{
  void doit()
  { print(&quot;Abgeleitet&quot;); }

  B()
  {}
}
</code></pre>
<p>(wie oben erkannt wurde, gibt C++ bei dieser Konstellation &quot;Basis&quot; aus, weil im A-Ctor der B-Anteil noch nicht existiert)</p>
</blockquote>
<p>java ruft jeweils die methode doit der instanziierten klasse auf. denn genau wie LordJaxom bereits gesagt hat, erstellt java zunächst alle methodentabellen und ruft erst dann die konstruktoren auf. weshalb sowas wie ein &quot;pure virtual function call&quot; (bzw. abstract in java termen) theoretisch gar nicht auftreten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303291</guid><dc:creator><![CDATA[javatyp]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:36:53 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>javatyp schrieb:</p>
<blockquote>
<p>java ruft immer den standard c-tor der oberklasse auf.</p>
</blockquote>
<p>Das macht C++ auch, wenn du keinen anderen Basis-Ctor in der Initialisierungsliste angegeben hast. Aber das ist auch gar nicht Thema der Frage....</p>
</blockquote>
<p>Doch - schon Thema meiner Frage (und damit ein wenig OT - ich hoffe, Ihr verzeiht mir).</p>
<p>@Lord: Danke.<br />
Ja, man hat in Java eigentlich nur Referenzen und primitive Typen in der Hand ... aber wie ist das mit &quot;aggregierten Basisklassen&quot; bei der Vererbung ?</p>
<p>Meine Frage ging nämlich eigentlich eher in eine andere Richtung: Was, wenn ich den DefaultCtor &quot;privatisiere&quot;, weil das Teil nur über meinen &quot;parametrisierten Ctor&quot; erzeugt werden soll ? Geht das auch (wobei ich dann explizit das passende super() aufrufen muss) ?<br />
Oder bedeutet &quot;default-konstruiert&quot; evtl. nicht unbedingt, dass der &quot;Default-Ctor&quot; aufgerufen wird, sondern eher etwas Ähnliches, was der Compiler für mich macht ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303293</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:39:42 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Meine Frage ging nämlich eigentlich eher in eine andere Richtung: Was, wenn ich den DefaultCtor &quot;privatisiere&quot; [...]</p>
</blockquote>
<p>dann schmeisst dir der compiler nen error um die ohren, weil der implizite konstruktor der oberklasse (oder basisklasse, wie man es auch immer nennen mag) nicht sichtbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303296</guid><dc:creator><![CDATA[javatyp]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:39:42 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] dynam. Bindung kaputt??? on Mon, 11 Jun 2007 15:43:02 GMT]]></title><description><![CDATA[<p>achso, was aber gehen sollte ist, wenn der erste aufruf im default konstruktor deiner abgeleiteten klassen einen parametrisierten konstruktor der basisklasse aufruft, dann sollte das ganze eigentlich gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1303303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1303303</guid><dc:creator><![CDATA[javatyp]]></dc:creator><pubDate>Mon, 11 Jun 2007 15:43:02 GMT</pubDate></item></channel></rss>