<?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[Template in Klasseneigenschaften]]></title><description><![CDATA[<p>Ich fange programmiere gerade so rum und habe festgestellt warum es gut sein kann Templates zu haben <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="🙂"
    /> Es kommt doch vor das man Code mehrmals schreiben muss. Warum, wenn es Template gibt.</p>
<pre><code>class _CBrush
	{
	private:
		std::string name;

	public:
		gdx::_CBrush *prev;			
		gdx::_CBrush *next;

		gdx::_CMesh  *first;
		gdx::_CMesh  *last;

	public:
		_CBrush();
		~_CBrush();

		void SetName(std::string name);

		void Init(void);
		void Release(gdx::_CBrush *brush);

		void Cut(void);

		void Debug(gdx::_CBrush *brush);
	};
</code></pre>
<pre><code>class _CMesh
	{
	private:
		std::string name;

	public:
		gdx::_CBrush	*brush;

		gdx::_CMesh		*prev;			
		gdx::_CMesh		*next;

		gdx::_CSurface  *first;
		gdx::_CSurface  *last;

	public:
		_CMesh();
		~_CMesh();

		void SetName(std::string name);

		void Init(void);
		void Release(gdx::_CMesh *mesh);

		void Cut(void);

		void Debug(gdx::_CMesh *mesh);
	};
</code></pre>
<p>Die Klassen sehen ja sehr ählich aus und machen im Code auch das gleiche. Der Unterschied ist halt der Typ der Eigenschaften. Da ich mich c++ Anfänger schimpfen kann habe ich wirklich keine Ahnung ob man das vereinfachen kann. Es gibt die Möglichkeit der Vererbung und auch Templates. Wie mache ich das mit den Eigenschaften?</p>
<p>PS: Ich habe so einen Beitrag schon mal geschrieben. Ich finde es nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330462/template-in-klasseneigenschaften</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 10:38:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330462.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Jan 2015 16:42:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template in Klasseneigenschaften on Sun, 11 Jan 2015 16:42:18 GMT]]></title><description><![CDATA[<p>Ich fange programmiere gerade so rum und habe festgestellt warum es gut sein kann Templates zu haben <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="🙂"
    /> Es kommt doch vor das man Code mehrmals schreiben muss. Warum, wenn es Template gibt.</p>
<pre><code>class _CBrush
	{
	private:
		std::string name;

	public:
		gdx::_CBrush *prev;			
		gdx::_CBrush *next;

		gdx::_CMesh  *first;
		gdx::_CMesh  *last;

	public:
		_CBrush();
		~_CBrush();

		void SetName(std::string name);

		void Init(void);
		void Release(gdx::_CBrush *brush);

		void Cut(void);

		void Debug(gdx::_CBrush *brush);
	};
</code></pre>
<pre><code>class _CMesh
	{
	private:
		std::string name;

	public:
		gdx::_CBrush	*brush;

		gdx::_CMesh		*prev;			
		gdx::_CMesh		*next;

		gdx::_CSurface  *first;
		gdx::_CSurface  *last;

	public:
		_CMesh();
		~_CMesh();

		void SetName(std::string name);

		void Init(void);
		void Release(gdx::_CMesh *mesh);

		void Cut(void);

		void Debug(gdx::_CMesh *mesh);
	};
</code></pre>
<p>Die Klassen sehen ja sehr ählich aus und machen im Code auch das gleiche. Der Unterschied ist halt der Typ der Eigenschaften. Da ich mich c++ Anfänger schimpfen kann habe ich wirklich keine Ahnung ob man das vereinfachen kann. Es gibt die Möglichkeit der Vererbung und auch Templates. Wie mache ich das mit den Eigenschaften?</p>
<p>PS: Ich habe so einen Beitrag schon mal geschrieben. Ich finde es nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437001</guid><dc:creator><![CDATA[Heino]]></dc:creator><pubDate>Sun, 11 Jan 2015 16:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Template in Klasseneigenschaften on Sun, 11 Jan 2015 17:35:49 GMT]]></title><description><![CDATA[<p>Ich posts nur, damits mir jemand um die Ohren haut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

template&lt; typename T, typename U &gt;
class thingy_t
{
	private:
		std::string my_name;
		T * prev;
		T * next;
		U * first;
		U * last;

	public:
		virtual ~thingy_t() { std::cout &lt;&lt; &quot;thingy_t&lt;&quot; &lt;&lt; T::T_type &lt;&lt; &quot;, &quot; &lt;&lt; U::U_type &lt;&lt; &quot;&gt;::~thingy_t()\n&quot;; }

        void init() {}
        void set_name( std::string const &amp; name ) { my_name = name; }
        void release( T * that ) {}
        void cut() {}
        void debug( T * that ) {}
};

class mesh_t;

class brush_t : public thingy_t&lt; brush_t, mesh_t &gt;
{
	public:
		static char const * T_type;
		static char const * U_type;

	public:
		 brush_t()  { std::cout &lt;&lt; &quot;mesh_t::brush_t()\n&quot;;  }
		~brush_t()  { std::cout &lt;&lt; &quot;mesh_t::~brush_t()\n&quot;; }
};

char const * brush_t::T_type = &quot;brush_t&quot;;
char const * brush_t::U_type = &quot;mesh_t&quot;;

class surface_t;

class mesh_t : public thingy_t&lt; mesh_t, surface_t &gt;
{
	public:
		static char const * T_type;
		static char const * U_type;

	private:
		brush_t * brush;

	public:
		 mesh_t()   { std::cout &lt;&lt; &quot;mesh_t::mesh_t()\n&quot;;  }
		~mesh_t()   { std::cout &lt;&lt; &quot;mesh_t::~mesh_t()\n&quot;; }
};

char const * mesh_t::T_type = &quot;mesh_t&quot;;
char const * mesh_t::U_type = &quot;surface_t&quot;;

class surface_t : public thingy_t&lt; surface_t, surface_t &gt;
{
	public:
		static char const * T_type;
		static char const * U_type;	
};

char const * surface_t::T_type = &quot;foo?&quot;;
char const * surface_t::U_type = &quot;bar?&quot;;

int main()
{
	brush_t  brush;
	mesh_t   mesh;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2437012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437012</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 11 Jan 2015 17:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to Template in Klasseneigenschaften on Sun, 11 Jan 2015 17:57:07 GMT]]></title><description><![CDATA[<p>Ohhh mein Gott. Das muss ich mir langsam reinziehen. Sonst wird es häftig. Das ist ja sowas von kyriptisch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437021</guid><dc:creator><![CDATA[Heino]]></dc:creator><pubDate>Sun, 11 Jan 2015 17:57:07 GMT</pubDate></item></channel></rss>