<?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[Default Ctor vs. Ctor mit einem optionalen Argument]]></title><description><![CDATA[<p>Ich habe in einem Code einen bestehenden default constructor<br />
bla::bla()<br />
zu einem mit einem optionalen Argument umgeschrieben:<br />
bla::bla(const char* blub=0)</p>
<p>Es gibt existierenden Code der noch die Version ohne Argumente benutzt.<br />
Nun meckert der Linker, dass bla::bla(void) undefiniert ist.<br />
Ist das normal?<br />
Denn man kann den Konstruktor doch weiterhin ohne Argument aufrufen.<br />
Ich war also davon ausgegangen dass ich keinen bestehenden Code breche.<br />
Oder gibt es da spezielle Regeln bei Konstruktoren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328289/default-ctor-vs-ctor-mit-einem-optionalen-argument</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 03:39:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328289.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Oct 2014 16:22:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Wed, 01 Oct 2014 16:22:23 GMT]]></title><description><![CDATA[<p>Ich habe in einem Code einen bestehenden default constructor<br />
bla::bla()<br />
zu einem mit einem optionalen Argument umgeschrieben:<br />
bla::bla(const char* blub=0)</p>
<p>Es gibt existierenden Code der noch die Version ohne Argumente benutzt.<br />
Nun meckert der Linker, dass bla::bla(void) undefiniert ist.<br />
Ist das normal?<br />
Denn man kann den Konstruktor doch weiterhin ohne Argument aufrufen.<br />
Ich war also davon ausgegangen dass ich keinen bestehenden Code breche.<br />
Oder gibt es da spezielle Regeln bei Konstruktoren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420296</guid><dc:creator><![CDATA[scrontch]]></dc:creator><pubDate>Wed, 01 Oct 2014 16:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Wed, 01 Oct 2014 16:30:09 GMT]]></title><description><![CDATA[<p>Sollte gehen. Ein Standardkonstruktor ist jeder Konstruktor, der ohne Argumente benutzt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420298</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 01 Oct 2014 16:30:09 GMT</pubDate></item><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Wed, 01 Oct 2014 16:36:54 GMT]]></title><description><![CDATA[<p>Deklaration angepasst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420301</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 01 Oct 2014 16:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Wed, 01 Oct 2014 16:37:46 GMT]]></title><description><![CDATA[<p>scrontch schrieb:</p>
<blockquote>
<p>Es gibt existierenden Code der noch die Version ohne Argumente benutzt.<br />
Nun meckert der Linker, dass bla::bla(void) undefiniert ist.<br />
Ist das normal?</p>
</blockquote>
<p>Sofern der existierende Code nicht neu compiliert wurde, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420302</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 01 Oct 2014 16:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Wed, 01 Oct 2014 16:44:18 GMT]]></title><description><![CDATA[<p>Die Deklaration wurde natürlich angepasst, sonst hätte es ja nicht mehr kompiliert.<br />
Ich habe alles neu kompiliert, Problem noch da.<br />
Ich habe auch einen Test gemacht und noch *zusätzlich* wieder einen ctor bla::bla() geschrieben und dann ist er glücklich. (Die Lösung gefällt mir aber nicht, da ich nun Code dupliziert habe)<br />
Btw, es handelt sich um MS VC8 (2005). Ist da vielleicht eine entsprechende Macke bekannt?<br />
Ich werd morgen weiter schauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420304</guid><dc:creator><![CDATA[scrontch]]></dc:creator><pubDate>Wed, 01 Oct 2014 16:44:18 GMT</pubDate></item><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Wed, 01 Oct 2014 17:58:34 GMT]]></title><description><![CDATA[<p>scrontch schrieb:</p>
<blockquote>
<p>Btw, es handelt sich um MS VC8 (2005). Ist da vielleicht eine entsprechende Macke bekannt?</p>
</blockquote>
<p>Ich arbeite selbst seit Jahren mit MSVC 2005 ...<br />
Das einzige was ich mir vorstellen könnte, wäre dass wieder mal die Precompiled-Headers rumspinnen.<br />
Mach mal Rebuild-All, also so richtig &quot;from scratch&quot;. Dann muss es gehen.<br />
Wenn nicht hast du vergessen was neu zu bauen - oder liegen noch wo alte .lib Files rum die dazugelinkt werden (falsche Linkerpfade?).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420317</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 01 Oct 2014 17:58:34 GMT</pubDate></item><item><title><![CDATA[Reply to Default Ctor vs. Ctor mit einem optionalen Argument on Thu, 02 Oct 2014 08:31:29 GMT]]></title><description><![CDATA[<p>Hmm, ich finds einfach nicht. Rebuild all gemacht.<br />
Da wo der parameterlose default-Ctor gebraucht wird ist offensichtlich bei der Initialisierung der Basisklasse bei einer abgeleiteten Klasse.</p>
<p>Hier der Linker-Error:<br />
Error 6 error LNK2019: unresolved external symbol &quot;public: __thiscall CGSIPStackSimple::CGSIPStackSimple(void)&quot; (??0CGSIPStackSimple@@QAE@XZ) referenced in function &quot;public: __thiscall CGSIPStack::CGSIPStack(char const <em>,int,int (__cdecl</em>)(char const *,long,char const *,int,char const *,int))&quot; (??0CGSIPStack@@QAE@PBDHP6AH0J0H0H@Z@Z) GSIPStack.obj</p>
<p>Im Beispiel wird also bla::bla(void) von foo::foo(...) gebraucht, wobei foo von bla abgeleitet ist.<br />
Und mein bla::bla(const char* blub=0) wird hier ignoriert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420420</guid><dc:creator><![CDATA[scrontch]]></dc:creator><pubDate>Thu, 02 Oct 2014 08:31:29 GMT</pubDate></item></channel></rss>