<?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[in set klasse vector verwenden, problem]]></title><description><![CDATA[<p>Hi ihr,</p>
<p>ich versuche mich grad an templates und klassen, und habe nun ein problem:</p>
<p>tvector.h</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef tvectorH
#define tvectorH

//---------------------------------------------------------------------------

template&lt;class T&gt;
class tvector
{
 public:
  tvector(int size)                     //Konstruktor um Feld anzulegen
  {
   m_size=size;
   m_data = new T[m_size];
  }

  tvector(const tvector&amp; tv)            //Copy-Konstruktor
  {
    m_size=tv.m_size;
    m_data = new T[m_size];
    for(int i=0;i&lt;m_size;i++)
     m_data[i]=tv.m_data[i];
  }

  ~tvector()                            //Destruktor löscht Feld
  {
   delete[] m_data;
  }

  T size() {return m_size;}           //Gibt aktuelle Größe zurück

  T&amp; operator[](int index)            //Gibt Daten an Indexposition zurück
  {
   assert(index&gt;=0);
   assert(index&lt;m_size);
   return m_data[index];
  }

  tvector&amp; operator=(const tvector&amp; tv)
  {
    if(this!=&amp;tv)
    {
    m_size=tv.m_size;
    delete[] m_data;
    m_data = new T[m_size];
    for(int i=0;i&lt;m_size;i++)
     m_data[i]=tv.m_data[i];
    }
    return *this;
  }
 private:
  T* m_data;
  int  m_size;

  void Grow(int newSize)                //um neues größeres Array anzulegen
  {
   T *temp = new T[m_size];
   for(int i=0;i&lt;m_size;i++)
    temp[i]=m_data[i];
   m_data = new T[newSize];

   for(int i=0;i&lt;m_size;i++)
    m_data[i]=temp[i];

   m_size=newSize;
   delete[] temp;

  }
};
#endif
</code></pre>
<p>tset.h</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef tsetH
#define tsetH
class tset
{
 public:
  tset():m_data(10){m_size=0;}

 private:
  tvector&lt;int&gt; m_data;
  int m_size;

};

//---------------------------------------------------------------------------
#endif
</code></pre>
<p>Fehler:</p>
<pre><code>[C++ Fehler] tset.h(11): E2303 Typname erwartet
[C++ Fehler] tset.h(11): E2139 In Deklaration fehlt ;
[C++ Fehler] tset.h(8): E2312 'm_data' ist keine eindeutige Basisklasse von 'tset'
</code></pre>
<p>wo liegt denn mein fehler, irgendwie seh ichs net!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130068/in-set-klasse-vector-verwenden-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 11:34:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130068.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Dec 2005 13:17:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to in set klasse vector verwenden, problem on Mon, 19 Dec 2005 13:17:44 GMT]]></title><description><![CDATA[<p>Hi ihr,</p>
<p>ich versuche mich grad an templates und klassen, und habe nun ein problem:</p>
<p>tvector.h</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef tvectorH
#define tvectorH

//---------------------------------------------------------------------------

template&lt;class T&gt;
class tvector
{
 public:
  tvector(int size)                     //Konstruktor um Feld anzulegen
  {
   m_size=size;
   m_data = new T[m_size];
  }

  tvector(const tvector&amp; tv)            //Copy-Konstruktor
  {
    m_size=tv.m_size;
    m_data = new T[m_size];
    for(int i=0;i&lt;m_size;i++)
     m_data[i]=tv.m_data[i];
  }

  ~tvector()                            //Destruktor löscht Feld
  {
   delete[] m_data;
  }

  T size() {return m_size;}           //Gibt aktuelle Größe zurück

  T&amp; operator[](int index)            //Gibt Daten an Indexposition zurück
  {
   assert(index&gt;=0);
   assert(index&lt;m_size);
   return m_data[index];
  }

  tvector&amp; operator=(const tvector&amp; tv)
  {
    if(this!=&amp;tv)
    {
    m_size=tv.m_size;
    delete[] m_data;
    m_data = new T[m_size];
    for(int i=0;i&lt;m_size;i++)
     m_data[i]=tv.m_data[i];
    }
    return *this;
  }
 private:
  T* m_data;
  int  m_size;

  void Grow(int newSize)                //um neues größeres Array anzulegen
  {
   T *temp = new T[m_size];
   for(int i=0;i&lt;m_size;i++)
    temp[i]=m_data[i];
   m_data = new T[newSize];

   for(int i=0;i&lt;m_size;i++)
    m_data[i]=temp[i];

   m_size=newSize;
   delete[] temp;

  }
};
#endif
</code></pre>
<p>tset.h</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef tsetH
#define tsetH
class tset
{
 public:
  tset():m_data(10){m_size=0;}

 private:
  tvector&lt;int&gt; m_data;
  int m_size;

};

//---------------------------------------------------------------------------
#endif
</code></pre>
<p>Fehler:</p>
<pre><code>[C++ Fehler] tset.h(11): E2303 Typname erwartet
[C++ Fehler] tset.h(11): E2139 In Deklaration fehlt ;
[C++ Fehler] tset.h(8): E2312 'm_data' ist keine eindeutige Basisklasse von 'tset'
</code></pre>
<p>wo liegt denn mein fehler, irgendwie seh ichs net!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/945565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/945565</guid><dc:creator><![CDATA[___hm____]]></dc:creator><pubDate>Mon, 19 Dec 2005 13:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to in set klasse vector verwenden, problem on Mon, 19 Dec 2005 13:20:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &quot;tvector.h&quot;
</code></pre>
<p>an den Anfang von tset.h</p>
]]></description><link>https://www.c-plusplus.net/forum/post/945567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/945567</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Mon, 19 Dec 2005 13:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to in set klasse vector verwenden, problem on Mon, 19 Dec 2005 13:21:46 GMT]]></title><description><![CDATA[<p>hm...hatte das in der tset.cpp eingebunden!</p>
<p>Also muss ich das auch explizit in der tset.h machen?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/945571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/945571</guid><dc:creator><![CDATA[___hm___]]></dc:creator><pubDate>Mon, 19 Dec 2005 13:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to in set klasse vector verwenden, problem on Mon, 19 Dec 2005 13:36:11 GMT]]></title><description><![CDATA[<p>Klar, wenn du das Template verwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/945584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/945584</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Mon, 19 Dec 2005 13:36:11 GMT</pubDate></item></channel></rss>