<?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[Array mit Klassen]]></title><description><![CDATA[<p>Ich möchte einen Array erzeugen der die Klasse in der er sich befindet beinhaltat. Dies tönt nun etwas kompliziert und sinnlos, aber ich möchte dies so lösen, da ich einen Pointer auf die Klasse erhalten muss und diese mehrmals initialisert wird. (ist nicht bekannt wie oft)</p>
<p>ich habe nun einen Array so definiert:</p>
<pre><code class="language-cpp">static CArray&lt;CBoardCommunication*,CBoardCommunication*&gt; m_apBoardCommunication;
</code></pre>
<p>Die static Funktion welche den Pointer zurückgiebt sieht so aus:</p>
<pre><code class="language-cpp">CBoardCommunication* CBoardCommunication::Get(int nBoardNumber)
{
	//  Kontrolle ob nBoardNumber grösser als 1 ist. (0 ist nicht zulässig)	
	if(nBoardNumber&gt;0)
	{
		nBoardNumber=1;
	}

	//  Klasse solang neu initialisieren bis die Anzahl welche benötigt wird
	//  vorhanden ist	
	while(m_apBoardCommunication.GetSize()&lt;nBoardNumber-1)
	{
		m_apBoardCommunication.Add(new CBoardCommunication(nBoardNumber));
	}

	return m_apBoardCommunication[nBoardNumber-1];	
}
</code></pre>
<p>Nun zum Problem...<br />
Wenn ich nur diese Klasse kompiliere funktioniert dies.<br />
Sobald ich jedoch das ganze Projekt kompiliere bekomme ich immer diese Fehlermeldung:</p>
<pre><code>IPA-TestApplikation error LNK2001: Nichtaufgelöstes externes Symbol &quot;public: static class CArray&lt;class CBoardCommunication *,class CBoardCommunication *&gt;
 CBoardCommunication::m_apBoardCommunication&quot; (?m_apBoardCommunication@CBoardCommunication@@2V?$CArray@PAVCBoardCommunication@@PAV1@@@A)
</code></pre>
<p>Kann mir jemand sagen wo das Problem liegt und wie ich es beheben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143597/array-mit-klassen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 16:39:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143597.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Apr 2006 07:20:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array mit Klassen on Mon, 10 Apr 2006 07:20:24 GMT]]></title><description><![CDATA[<p>Ich möchte einen Array erzeugen der die Klasse in der er sich befindet beinhaltat. Dies tönt nun etwas kompliziert und sinnlos, aber ich möchte dies so lösen, da ich einen Pointer auf die Klasse erhalten muss und diese mehrmals initialisert wird. (ist nicht bekannt wie oft)</p>
<p>ich habe nun einen Array so definiert:</p>
<pre><code class="language-cpp">static CArray&lt;CBoardCommunication*,CBoardCommunication*&gt; m_apBoardCommunication;
</code></pre>
<p>Die static Funktion welche den Pointer zurückgiebt sieht so aus:</p>
<pre><code class="language-cpp">CBoardCommunication* CBoardCommunication::Get(int nBoardNumber)
{
	//  Kontrolle ob nBoardNumber grösser als 1 ist. (0 ist nicht zulässig)	
	if(nBoardNumber&gt;0)
	{
		nBoardNumber=1;
	}

	//  Klasse solang neu initialisieren bis die Anzahl welche benötigt wird
	//  vorhanden ist	
	while(m_apBoardCommunication.GetSize()&lt;nBoardNumber-1)
	{
		m_apBoardCommunication.Add(new CBoardCommunication(nBoardNumber));
	}

	return m_apBoardCommunication[nBoardNumber-1];	
}
</code></pre>
<p>Nun zum Problem...<br />
Wenn ich nur diese Klasse kompiliere funktioniert dies.<br />
Sobald ich jedoch das ganze Projekt kompiliere bekomme ich immer diese Fehlermeldung:</p>
<pre><code>IPA-TestApplikation error LNK2001: Nichtaufgelöstes externes Symbol &quot;public: static class CArray&lt;class CBoardCommunication *,class CBoardCommunication *&gt;
 CBoardCommunication::m_apBoardCommunication&quot; (?m_apBoardCommunication@CBoardCommunication@@2V?$CArray@PAVCBoardCommunication@@PAV1@@@A)
</code></pre>
<p>Kann mir jemand sagen wo das Problem liegt und wie ich es beheben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034260</guid><dc:creator><![CDATA[addict]]></dc:creator><pubDate>Mon, 10 Apr 2006 07:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit Klassen on Mon, 10 Apr 2006 07:37:43 GMT]]></title><description><![CDATA[<p>Erstens mußt du zu der static-Deklaration dort oben noch eine Definition mitliefern (die sagt dem Compiler, in welcher Übersetzungseinheit die Variable &quot;leben&quot; soll):</p>
<pre><code class="language-cpp">//am besten in der CPP deiner Klasse:
CArray&lt;CBoardCommunication*,CBoardCommunication*&gt; CBoardCommunication::m_abBoardCommunication;
</code></pre>
<p>Und zweitens ist deine if()-Bedingung falsch - du ersetzt alle Indizes außer 0 durch 1. Zu der Beschreibung passt &quot;if(nBoardNumber&lt;=0) nBoardNumber=1;&quot;.<br />
(btw, was spricht dagegen Board 0 zu verwenden?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034266</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 10 Apr 2006 07:37:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array mit Klassen on Mon, 10 Apr 2006 07:43:28 GMT]]></title><description><![CDATA[<p>Vielen Dank!<br />
Ich kann 0 nicht verwenden, da ich IDs vergebe. Jedes Endgerät welches mit der Klasse kommuniziert hat eine ID... Der PC hat dabei die ID0 aus diesem Grund darf ich diese nicht mehr vergeben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034269</guid><dc:creator><![CDATA[addict]]></dc:creator><pubDate>Mon, 10 Apr 2006 07:43:28 GMT</pubDate></item></channel></rss>