<?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[Typ aus Datei lesen und in Klasse speichern]]></title><description><![CDATA[<p>Allso ich beginne mal von ganz vorne.</p>
<p>ich habe eine xml Datei diese hatt den folgenden aufbau:</p>
<pre><code class="language-html">&lt;type name=&quot;typ1&quot;&gt;
  &lt;atrribute name=&quot;attr_int&quot; type=&quot;int&quot;/&gt;
  &lt;atrribute name=&quot;attr_char&quot; type=&quot;char&quot;/&gt;
&lt;/type&gt;
&lt;type name=&quot;typ2&quot;&gt;
  &lt;atrribute name=&quot;attr_float&quot; type=&quot;float&quot;/&gt;
  &lt;atrribute name=&quot;attr_bool&quot; type=&quot;bool&quot;/&gt;
&lt;/type&gt;
</code></pre>
<p>ich möchte diese Datei auslesen (das ist kein problem)<br />
und anschließend in einer klasse Speichern.</p>
<p>aufbau der klasse wie ich sie mir vorgestellt habe</p>
<pre><code class="language-cpp">class CType
{
public:
  CType(...){...};
  char* GetName();
private:
  char* name;

}
</code></pre>
<p>so meine frage ist wie bekomme ich die Attribute Sinnvoll in die Klasse rein.</p>
<p>ich dachte an eine liste, aber das geht nicht so einfach da die Attribute ja verschiedene typen haben können.</p>
<p>ich denke da an zwei möglichkeiten Überladen vpn funktionen oder templates<br />
wäre über hilfe echt dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237822/typ-aus-datei-lesen-und-in-klasse-speichern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 06:23:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237822.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Apr 2009 10:55:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 10:55:20 GMT]]></title><description><![CDATA[<p>Allso ich beginne mal von ganz vorne.</p>
<p>ich habe eine xml Datei diese hatt den folgenden aufbau:</p>
<pre><code class="language-html">&lt;type name=&quot;typ1&quot;&gt;
  &lt;atrribute name=&quot;attr_int&quot; type=&quot;int&quot;/&gt;
  &lt;atrribute name=&quot;attr_char&quot; type=&quot;char&quot;/&gt;
&lt;/type&gt;
&lt;type name=&quot;typ2&quot;&gt;
  &lt;atrribute name=&quot;attr_float&quot; type=&quot;float&quot;/&gt;
  &lt;atrribute name=&quot;attr_bool&quot; type=&quot;bool&quot;/&gt;
&lt;/type&gt;
</code></pre>
<p>ich möchte diese Datei auslesen (das ist kein problem)<br />
und anschließend in einer klasse Speichern.</p>
<p>aufbau der klasse wie ich sie mir vorgestellt habe</p>
<pre><code class="language-cpp">class CType
{
public:
  CType(...){...};
  char* GetName();
private:
  char* name;

}
</code></pre>
<p>so meine frage ist wie bekomme ich die Attribute Sinnvoll in die Klasse rein.</p>
<p>ich dachte an eine liste, aber das geht nicht so einfach da die Attribute ja verschiedene typen haben können.</p>
<p>ich denke da an zwei möglichkeiten Überladen vpn funktionen oder templates<br />
wäre über hilfe echt dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689762</guid><dc:creator><![CDATA[Bigmek]]></dc:creator><pubDate>Thu, 02 Apr 2009 10:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 11:21:17 GMT]]></title><description><![CDATA[<p>Da man den Typen einer Variable zur Laufzeit nicht ändern kann, ist sowas eher schwierig. Da würde ich wohl auf Boost.Variant und Boost.Any verweisen:<br />
<a href="http://www.boost.org/doc/libs/1_38_0/doc/html/any.html" rel="nofollow">http://www.boost.org/doc/libs/1_38_0/doc/html/any.html</a><br />
<a href="http://www.boost.org/doc/libs/1_38_0/doc/html/variant.html" rel="nofollow">http://www.boost.org/doc/libs/1_38_0/doc/html/variant.html</a></p>
<p>Allerdings sind solche Lösungen oft nicht sehr optimal.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689784</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 02 Apr 2009 11:21:17 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 11:27:45 GMT]]></title><description><![CDATA[<p>Der Variablentyp muss sich nicht unbediengt zur Laufzeit verändern können, es reicht mir wenn es die standard Datentypen (int,char,double, ...) schon vordefiniert gibt und er sich einfach beim erstellen einen von denen aussucht, das müsste doch möglich sein.<br />
Dazu gibts ja template nur wie ich das dann in eine Liste/array oder sonst wo hineinbekomme weis ich nicht, da ja nicht die ganze Liste den gelichen Datentyp hatt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689793</guid><dc:creator><![CDATA[Bigmek]]></dc:creator><pubDate>Thu, 02 Apr 2009 11:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 11:37:40 GMT]]></title><description><![CDATA[<p>Darf ich mal fragen wieso du char* statt string benutzt ? Immerhin sind wir hier im C++ Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689801</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 02 Apr 2009 11:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 12:32:03 GMT]]></title><description><![CDATA[<p>Bigmek schrieb:</p>
<blockquote>
<p>Dazu gibts ja template nur wie ich das dann in eine Liste/array oder sonst wo hineinbekomme weis ich nicht, da ja nicht die ganze Liste den gelichen Datentyp hatt</p>
</blockquote>
<p>Und genau da haben wir das Problem. Eine Liste kann nur einen Datentyp aufnehmen. Du kannst nicht verschiedene Datentypen in eine Liste setzen. Ausser du verwendest eben Techniken wie Boost.Any oder Boost.Variant.<br />
Templates bringen dir dabei auch nichts, weil Templates zur Kompilezeit ausgewertet werden. Zur Laufzeit kann man diese nicht auswerten lassen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689856</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 02 Apr 2009 12:32:03 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 12:56:49 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Darf ich mal fragen wieso du char* statt string benutzt ? Immerhin sind wir hier im C++ Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>dann halt string, hab das ja nur als beispiel geschrieben, und das sind die ersten zwei datentypen die mir einfallen wenn ich an c++ denke. <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>und wenn ichs mit einer überladenen funktionmachen</p>
<p>beispiel:</p>
<pre><code class="language-cpp">class attribute
{
...
virtual void getData();
}

class attribute_INT : attribute
{
...
int getData();
}

class attribute_STRING : attribute
{
...
string getData();
}

class CType
{
public:
  CType(...){...};
  char* GetName();
private:
  char* name;
  attribute* nextAttribute;
}
</code></pre>
<p>würde das funktionieren?<br />
sorry kann es selber gerade nicht testen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689874</guid><dc:creator><![CDATA[Bigmek]]></dc:creator><pubDate>Thu, 02 Apr 2009 12:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:09:10 GMT]]></title><description><![CDATA[<p>Bigmek schrieb:</p>
<blockquote>
<p>würde das funktionieren?</p>
</blockquote>
<p>Nein, die Rückgabewerte sind nicht identisch, sowas geht nicht.</p>
<p>Grüssli</p>
<p>PS: wtf? <code>char*</code> kommt dir als erstes bei C++ in den Sinn? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1689878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689878</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:09:10 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:19:42 GMT]]></title><description><![CDATA[<p>const char* ist gar nicht mal so dumm!<br />
es ist eher andersrum, daß 20% der verwendungen von std::string als dumm einzustufen sind, als anfängerfehler im besten fall, aber meistens als ignoranz- und faulheitsfehler. ich nenne nur mal einen klassiker</p>
<pre><code class="language-cpp">const string config_filename=&quot;myapp.ini&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1689884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689884</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:23:32 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>PS: wtf? <code>char*</code> kommt dir als erstes bei C++ in den Sinn? <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>
</blockquote>
<p>What tha fuck hab ich auch gedacht <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="😃"
    /> Is pures C...</p>
<p>Naja aber was du da versucht hast is quatsch und bringt nix.<br />
Allgemein weiss ich noch immer nicht, wie genau du dir das vorstellt, funktionalitätsmäßig. Zeig mal was, dann kann man bestimmt noch besser helfen, weil mir die Deklaration deiner Klasse nicht viel bringt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689886</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:27:08 GMT]]></title><description><![CDATA[<p>nein char aber da char nur ein Zeichen ist hab ich char* geschrieben<br />
außerdem hab ich gesagt die ersten Datentypen und nicht das erste.<br />
man kann ja irgendwie den datentyp einer variable abfragen aber ich weis nichtmeh wie, es war irgendwas mit type...</p>
<pre><code class="language-cpp">class a
{

};

class a_int : a
{
public:
  int data;
};

class a_string : a
{
public:
  string data;
};

a test = new a_string();
...

switch(type...(test))
{
  case a_string:
   //tu was ein string so macht
  break;

...
}

...
</code></pre>
<p>das schaut vielversprächend</p>
<p>FreakY&lt;3Cpp:<br />
ich kann noch nichts zeigen da sich das noch im ideen Status befindet.<br />
und die xml Struktur hast ja gesehen, ich möchte typen aus einer XML datei laden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689888</guid><dc:creator><![CDATA[Bigmek]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:27:08 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:40:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    double double_number = 5;
    std::cout &lt;&lt; typeid(double_number).name();
}
</code></pre>
<p>Damit kriegste auf die Konsole ein &quot;d&quot; geschrieben. So kannste z.B. in deiner Switch-Abfrage auf <em>i,d,c,f</em> etc. prüfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689897</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:53:43 GMT]]></title><description><![CDATA[<p>danke genau das habe ich gemeint.<br />
aber das funktioniert nicht so recht</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;typeinfo&gt;

using namespace std;

class a
{
public:
  char name;
  virtual ~a(){};
};

class a_int : public a
{
public:
  int data;
};

class a_char : public a
{
public:
  char data;
};

int main(void)
{
  a* test = new a_int();
  a_int* test2 = new a_int();

  cout&lt;&lt;typeid(test).name()&lt;&lt;endl;
  cout&lt;&lt;typeid(test2).name()&lt;&lt;endl;

  delete test2;
  delete test;

  return 0;
};
</code></pre>
<p>ausgabe:<br />
P1a<br />
P5a_int</p>
<p>der gibt mir a aus sollte aber eigentlich a_int sein ????</p>
<p>edit:<br />
haha DANKE es funktioniert</p>
<p>es gehört cout&lt;&lt;typeid(*test).name()&lt;&lt;endl;<br />
anstat cout&lt;&lt;typeid(test).name()&lt;&lt;endl;</p>
<p>dann gehts juhu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689906</guid><dc:creator><![CDATA[Bigmek]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:53:43 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:58:34 GMT]]></title><description><![CDATA[<p>edit: ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689911</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:58:34 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 13:59:08 GMT]]></title><description><![CDATA[<p>Bigmek schrieb:</p>
<blockquote>
<p>der gibt mir a aus sollte aber eigentlich a_int sein ????</p>
</blockquote>
<p>Nein, der Standard sagt nur, dass die Funktion name() einen lesbaren Namen ausgeben soll. Was das genau ist, wird nicht definiert. Ich glaube er kann sogar für die gleiche Klasse mehrere Unterschiedliche Namen ausgeben. Ein Prüfung auf den Typ ist nur möglich durch den <code>operator ==</code> des <code>type_info</code> Objektes.<br />
<a href="http://www.cplusplus.com/reference/std/typeinfo/" rel="nofollow">http://www.cplusplus.com/reference/std/typeinfo/</a></p>
<p>Sag mal, wieso glaubst du mir nicht einfach? Schau dir doch mal Boost.Any oder Boost.Variant zumindest an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Es gibt schon gewisse Möglichkeiten, aber die gehen eben über Boost.Any und Boost.Variant oder dergleichen.</p>
<p>Ich habe selber erst gerade sowas benötigt. Hier mal einen Auszug, wie ich das bei mir probiert habe zu lösen. Node ist ein Container für beliebige Objekte, welche ein bestimmtes Konzept erfüllen.<br />
Ist allerdings noch in der Entwicklung.</p>
<pre><code class="language-cpp">//////////////////////////////////////////////////////////////////////////
// Node

class Node
	: public ChildNode
{
	// Static functions //
private:
	template&lt;typename ContentT&gt;
	static void* copy_content(void* ptr);

	template&lt;typename ContentT&gt;
	static void delete_content(void* ptr);

	// Typedefs //
private:
	typedef void* (*CopyFunction)(void*);
	typedef void (*DeleteFunction)(void*);

	// Attributes //
private:
	NodeType m_type;
	void* m_content;

	CopyFunction m_copyFunction;
	DeleteFunction m_deleteFunction;

	Node* m_prevNode;
	Node* m_nextNode;

	// Constructors &amp; Destructor //
public:
	template&lt;typename ContentT&gt;
	Node(ContentT const&amp; content);

	Node(Node const&amp; node);

	~Node();

	// Operators //
public:
	Node&amp; operator =(Node const&amp; node);

	// Methods //
private:
	template&lt;typename ContentT&gt;
	void create_content(ContentT const&amp; content);

public:
	NodeType get_type() const;
	bool is_type(NodeType type) const;

	template&lt;typename ContentT&gt;
	bool is_type() const;

	template&lt;typename ContentT&gt;
	ContentT* get_content();

	template&lt;typename ContentT&gt;
	ContentT const* get_content() const;

	template&lt;typename ContentT&gt;
	void set_content(ContentT const&amp; comment);

	Node* get_prev_node();
	Node const* get_prev_node() const;

	Node* get_next_node();
	Node const* get_next_node() const;

	template&lt;typename ContentT&gt;
	void insert_prev(ContentT const&amp; content);

	template&lt;typename ContentT&gt;
	void insert_next(ContentT const&amp; content);

	std::auto_ptr&lt;Node&gt; remove();

	void swap(Node&amp; node);
};

/************************************************************************/
/* Static methods                                                       */
/************************************************************************/

template&lt;typename ContentT&gt;
void* Node::copy_content(void* ptr)
{
	return new ContentT(*static_cast&lt;ContentT*&gt;(ptr));
}

/************************************************************************/

template&lt;typename ContentT&gt;
void Node::delete_content(void* ptr)
{
	delete static_cast&lt;ContentT*&gt;(ptr);
}

/************************************************************************/
/* Constructor                                                          */
/************************************************************************/

template&lt;typename ContentT&gt;
Node::Node(ContentT const&amp; content)
	: ChildNode(content)
	, m_type(ContentT::NODE_TYPE)
	, m_content(nullptr)
	, m_copyFunction(&amp;copy_content&lt;Comment&gt;)
	, m_deleteFunction(&amp;delete_content&lt;Comment&gt;)
	, m_prevNode(nullptr)
	, m_nextNode(nullptr)
{
	create_content(content);
}

/************************************************************************/
/* Methods                                                              */
/************************************************************************/

template&lt;typename ContentT&gt;
void Node::create_content(ContentT const&amp; content)
{
	ContentT* contentPtr = new ContentT(content);
	contentPtr-&gt;set_node(this);
	m_content = contentPtr;
}

/************************************************************************/

template&lt;typename ContentT&gt;
bool Node::is_type() const
{
	return ContentT::NODE_TYPE == m_type;
}

/************************************************************************/

template&lt;typename ContentT&gt;
ContentT* Node::get_content()
{
	if(is_type&lt;ContentT&gt;())
	{
		return static_cast&lt;ContentT*&gt;(m_content);
	}

	return nullptr;
}

/************************************************************************/

template&lt;typename ContentT&gt;
ContentT const* Node::get_content() const
{
	if(is_type&lt;ContentT&gt;())
	{
		return static_cast&lt;ContentT*&gt;(m_content);
	}

	return nullptr;
}

/************************************************************************/

template&lt;typename ContentT&gt;
void Node::set_content(ContentT const&amp; content)
{
	(*m_deleteFunction)(m_content);

	create_content(content);

	m_copyFunction = &amp;copy_content&lt;ContentT&gt;;
	m_deleteFunction = &amp;delete_content&lt;ContentT&gt;;

	m_type = ContentT::NODE_TYPE;
}

/************************************************************************/

template&lt;typename ContentT&gt;
void Node::insert_prev(ContentT const&amp; content)
{
	BasicNodeList* container = get_container();

	if(nullptr == container)
	{
		throw NodeException(&quot;No container available, &quot;
							&quot;can't insert node!&quot;);
	}

	if(m_prevNode)
	{
		Node* insertNode = new Node(content);

		insertNode-&gt;set_parent(get_parent());
		insertNode-&gt;set_container(container);

		insertNode-&gt;m_prevNode = m_prevNode;
		insertNode-&gt;m_nextNode = this;

		m_prevNode-&gt;m_nextNode = insertNode;
		m_prevNode = insertNode;
	}
	else if(m_nextNode)
	{
		insert_next(content);
		swap(*m_nextNode);
	}
	else
	{
		Node* insertNode = new Node(content);

		insertNode-&gt;set_parent(get_parent());
		insertNode-&gt;set_container(get_container());

		insertNode-&gt;m_prevNode = nullptr;
		insertNode-&gt;m_nextNode = this;

		m_prevNode = insertNode;

		if(container)
		{
			container-&gt;m_firstNode = insertNode;
		}
	}
}

/************************************************************************/

template&lt;typename ContentT&gt;
void Node::insert_next(ContentT const&amp; content)
{
	BasicNodeList* container = get_container();

	if(nullptr == get_container())
	{
		throw NodeException(&quot;No container available, &quot;
							&quot;can't insert node!&quot;);
	}

	if(m_nextNode)
	{
		Node* insertNode = new Node(content);

		insertNode-&gt;set_parent(get_parent());
		insertNode-&gt;set_container(container);

		insertNode-&gt;m_prevNode = this;
		insertNode-&gt;m_nextNode = m_nextNode;

		m_nextNode-&gt;m_prevNode = insertNode;
		m_nextNode = insertNode;
	}
	else if(m_prevNode)
	{
		insert_prev(content);
		swap(*m_prevNode);
	}
	else
	{
		Node* insertNode = new Node(content);

		insertNode-&gt;set_parent(get_parent());
		insertNode-&gt;set_container(container);

		insertNode-&gt;m_prevNode = this;
		insertNode-&gt;m_nextNode = nullptr;

		m_nextNode = insertNode;

		if(container)
		{
			container-&gt;m_lastNode = insertNode;
		}
	}
}
</code></pre>
<p>Vielleicht hilft es ja etwas.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689913</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 02 Apr 2009 13:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 14:13:20 GMT]]></title><description><![CDATA[<p>Wenn sich die Daten als String serialisieren lassen, reicht es doch eine Liste von Strings zu nutzen, und sie mit einer Templatefunktion verfügbar zu machen.<br />
Dabei hilf boost::lexical_cast&lt;T&gt; sehr.</p>
<p>So habe ich es gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689922</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Thu, 02 Apr 2009 14:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 14:21:18 GMT]]></title><description><![CDATA[<p>danke an alle, ich werde es wohl mit typeid machen da mir das das einfachste scheint.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689924</guid><dc:creator><![CDATA[Bigmek]]></dc:creator><pubDate>Thu, 02 Apr 2009 14:21:18 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 14:40:33 GMT]]></title><description><![CDATA[<p>Bigmek schrieb:</p>
<blockquote>
<p>danke an alle, ich werde es wohl mit typeid machen da mir das das einfachste scheint.</p>
</blockquote>
<p>Ich hoffe allerdings, dass du gelesen hast, dass man den Rückgabewert von <code>name()</code> nicht verwenden darf! Und wieso eine fertige Klasse nicht einfacher ist, als selber was zu bauen, das leuchtet mir nicht so ein <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689936</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 02 Apr 2009 14:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Typ aus Datei lesen und in Klasse speichern on Thu, 02 Apr 2009 18:02:23 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>const char* ist gar nicht mal so dumm!<br />
es ist eher andersrum, daß 20% der verwendungen von std::string als dumm einzustufen sind, als anfängerfehler im besten fall, aber meistens als ignoranz- und faulheitsfehler. ich nenne nur mal einen klassiker</p>
<pre><code class="language-cpp">const string config_filename=&quot;myapp.ini&quot;;
</code></pre>
</blockquote>
<p>Das stimmt. Aber das &quot;als Anfängerfehler im besten Fall&quot; musst du schon beachten - lieber, man macht etwas von Anfang an richtig. Sehr viele Anfänger haben grosse Mühe mit Zeigern und folglich auch Zeichenkettenverwaltung im C-Stil. Allerdings ist es schade, dass einige Leute sich auch nach besserer Kenntnis von C++ nur noch mit <code>std::string</code> rumschlagen, weil sie nichts anderes kennen.</p>
<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<p>PS: wtf? <code>char*</code> kommt dir als erstes bei C++ in den Sinn? <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>
</blockquote>
<p>What tha love hab ich auch gedacht <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="😃"
    /> Is pures C...</p>
</blockquote>
<p>Das bedeutet nicht, dass es in C++ grundsätzlich unberechtigt ist. Also pass mit solchen Pauschalisierungen auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690034</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 02 Apr 2009 18:02:23 GMT</pubDate></item></channel></rss>