<?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[linkproblem wegen konstruktor einer klasse]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
public:
	A(int i)
	{itsX = i;}
	~A();
private:
	int itsX;
};

class B : public A
{
public:
	B(int i);
};

B::B (int i) : A(i)
{ };

int main()
{
	B var(0);

	return 0;
}
</code></pre>
<p>Warum erscheint denn bei diesem Code folgendes Linkproblem:</p>
<blockquote>
<p>error LNK2019: unresolved external symbol &quot;public: __thiscall A::~A(void)</p>
</blockquote>
<p>Danke.<br />
H.W.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165688/linkproblem-wegen-konstruktor-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 19:28:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165688.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Nov 2006 09:39:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to linkproblem wegen konstruktor einer klasse on Wed, 22 Nov 2006 09:39:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A
{
public:
	A(int i)
	{itsX = i;}
	~A();
private:
	int itsX;
};

class B : public A
{
public:
	B(int i);
};

B::B (int i) : A(i)
{ };

int main()
{
	B var(0);

	return 0;
}
</code></pre>
<p>Warum erscheint denn bei diesem Code folgendes Linkproblem:</p>
<blockquote>
<p>error LNK2019: unresolved external symbol &quot;public: __thiscall A::~A(void)</p>
</blockquote>
<p>Danke.<br />
H.W.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179036</guid><dc:creator><![CDATA[Hans Wurst]]></dc:creator><pubDate>Wed, 22 Nov 2006 09:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to linkproblem wegen konstruktor einer klasse on Wed, 22 Nov 2006 09:41:35 GMT]]></title><description><![CDATA[<p>Du hast ganz einfach vergessen, den DESTRUKTOR der Klasse A zu implementieren.</p>
<p>Wenn du ihn überhaupt nicht angibst, erzeugt der Compiler ihn für dich - komplett mit allem Zubehör. Wenn du ihn in der Klassendefinition erwähnst, erwartet der Compiler auch von DIR, ihn zu implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179037</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Nov 2006 09:41:35 GMT</pubDate></item><item><title><![CDATA[Reply to linkproblem wegen konstruktor einer klasse on Wed, 22 Nov 2006 10:05:32 GMT]]></title><description><![CDATA[<p>Danke.</p>
<p>Ich hätte dazu mal noch eine Frage. Un zwar geht es dazu auch um folgenden thread:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-165250-and-highlight-is-.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-165250-and-highlight-is-.html</a></p>
<p>Da ich keine globalen Variablen definieren will, wie von dir empfohlen, wollte ich die Klasse A mit der Variablen itsX global nutzen. Und zwar so:</p>
<pre><code class="language-cpp">class A
{
public:
	A(){itsX = 0;}
	~A(){}
	void SetX(int i)
	{itsX = i;}
	int GetX()
	{return itsX;}
private:
	int itsX;
};

class B : public A
{
public:
	B() : A() {}
};

class C : public A
{
public:
	C() : A() {}
};

int main()
{
	B var1;
	var1.SetX(1);

	C var2;

	return 0;
}
</code></pre>
<p>Mit B wollte ich die Variable itsX auf 1 setzen, und wenn ich dann C von A ableite, ist itsX nicht mehr 0 sondern 1. Das funktioniert aber nicht, weil C von A abgeleitet wird noch bevor itsX auf 1 gesetzt wird.</p>
<p>Wie hast du dann aber diesen Satz gemeint:</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Meistens besteht ja eine Verbindung dieser Variable zu einer meiner Klassen - und dann würde ich sie auch in der .H/.CPP dieser Klasse unterbringen.</p>
</blockquote>
<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>
<p>Vielen Dank!<br />
H.W.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179063</guid><dc:creator><![CDATA[Hans Wurst]]></dc:creator><pubDate>Wed, 22 Nov 2006 10:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to linkproblem wegen konstruktor einer klasse on Wed, 22 Nov 2006 10:14:05 GMT]]></title><description><![CDATA[<p>Hans Wurst schrieb:</p>
<blockquote>
<p>Ich hätte dazu mal noch eine Frage. Un zwar geht es dazu auch um folgenden thread:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-165250-and-highlight-is-.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-165250-and-highlight-is-.html</a></p>
<p>Da ich keine globalen Variablen definieren will, wie von dir empfohlen, wollte ich die Klasse A mit der Variablen itsX global nutzen. Und zwar so:</p>
</blockquote>
<p>Du hast zwei Objekte vom Typ B bzw. C - und jedes hat eine eigene Kopie des Members <code>itsX</code> . Wenn du nur eine Variable für alle A's (und von A abgeleiteten Objekte) benötigst, mußt du sie als static definieren.</p>
<blockquote>
<p>Wie hast du dann aber diesen Satz gemeint:</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>Meistens besteht ja eine Verbindung dieser Variable zu einer meiner Klassen - und dann würde ich sie auch in der .H/.CPP dieser Klasse unterbringen.</p>
</blockquote>
</blockquote>
<p>Wenn ich eine globale Variable vom Typ A benötige, landet die in der A.h/A.CPP. Genauso werden statische Member einer Klasse in <em>ihrer</em> .CPP definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1179072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1179072</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Nov 2006 10:14:05 GMT</pubDate></item></channel></rss>