<?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[mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten]]></title><description><![CDATA[<p>hihooo leute hoffe das das keine dämliche frage ist ^^</p>
<p>ich hatte aus konsistenz gründen vor für in meinen klassen verwendeten datentypen jeweils aliase zu erzeugen. mittels typedef war mein erster gedanke nur hat mein compiler mich wieder mal drauf aufmerksam gemacht das er die ^^ umbenennungen ja später unbemerkt macht. das ist echtn bissl doof weil ich eintlich ein paar member-fkt überladen wollte und nur anahnd des datentyps entscheiden lassen wollte.</p>
<pre><code class="language-cpp">class Test
{

public:
	typedef int 		IdType;
	typedef wxDateTime 	DateType;
	typedef wxString 	NameType;
	typedef wxString 	LocoType;
	typedef wxString 	LocaType;
	typedef wxString 	FormatIdType;
	typedef wxString 	FormatDateType;

public:
	static FormatIdType		Format(IdType id2format);
	static FormatDateType		Format(DateType date2format);
	static IdType			Format(FormatIdType formatId2format);
	static DateType			Format(FormatDateType formatDate2format);

public:
	static bool	IsValid(IdType id2validate);
	static bool	IsValid(DateType date2validate);
	static bool	IsValid(FormatIdType formatId2validate);
	static bool	IsValid(FormatDateType formatDate2validate);

};
</code></pre>
<p>najaaaaa <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=":/"
      alt="😕"
    /> das das nicht läuft war ja klar. nun hatte ich noch versucht mit klassen neudeklarationen zu handeln. allerdings hab ich dann ja wieder bei den primitiven datentypen probleme... hat iwer ne ideee dafür? entweder ne einfache wrapper&lt;...&gt; klasse oder iwas anderes ^^ noch simpleres?</p>
<pre><code class="language-cpp">class Test
{

public:
	class IdType 	: public int {}; // das geht ja leider net
	class IdType 	: public Wrapper&lt;int&gt; {}; // das wär ok
	class DateType 	: public wxDateTime {};
	calss NameType 	: public wxString {};
....

};
</code></pre>
<p>ja also das mit dem wrapper hab ich probiert aber als ich dann jeden gültigen operator neu schreiben musste <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=":/"
      alt="😕"
    /> dacht ich es muss doch noch was einfacheres geben....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210571/mehrere-typenbezeichner-für-einen-datentypen-ohne-mehrdeutigkeiten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 17:31:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210571.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Apr 2008 13:57:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Sat, 12 Apr 2008 13:57:30 GMT]]></title><description><![CDATA[<p>hihooo leute hoffe das das keine dämliche frage ist ^^</p>
<p>ich hatte aus konsistenz gründen vor für in meinen klassen verwendeten datentypen jeweils aliase zu erzeugen. mittels typedef war mein erster gedanke nur hat mein compiler mich wieder mal drauf aufmerksam gemacht das er die ^^ umbenennungen ja später unbemerkt macht. das ist echtn bissl doof weil ich eintlich ein paar member-fkt überladen wollte und nur anahnd des datentyps entscheiden lassen wollte.</p>
<pre><code class="language-cpp">class Test
{

public:
	typedef int 		IdType;
	typedef wxDateTime 	DateType;
	typedef wxString 	NameType;
	typedef wxString 	LocoType;
	typedef wxString 	LocaType;
	typedef wxString 	FormatIdType;
	typedef wxString 	FormatDateType;

public:
	static FormatIdType		Format(IdType id2format);
	static FormatDateType		Format(DateType date2format);
	static IdType			Format(FormatIdType formatId2format);
	static DateType			Format(FormatDateType formatDate2format);

public:
	static bool	IsValid(IdType id2validate);
	static bool	IsValid(DateType date2validate);
	static bool	IsValid(FormatIdType formatId2validate);
	static bool	IsValid(FormatDateType formatDate2validate);

};
</code></pre>
<p>najaaaaa <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=":/"
      alt="😕"
    /> das das nicht läuft war ja klar. nun hatte ich noch versucht mit klassen neudeklarationen zu handeln. allerdings hab ich dann ja wieder bei den primitiven datentypen probleme... hat iwer ne ideee dafür? entweder ne einfache wrapper&lt;...&gt; klasse oder iwas anderes ^^ noch simpleres?</p>
<pre><code class="language-cpp">class Test
{

public:
	class IdType 	: public int {}; // das geht ja leider net
	class IdType 	: public Wrapper&lt;int&gt; {}; // das wär ok
	class DateType 	: public wxDateTime {};
	calss NameType 	: public wxString {};
....

};
</code></pre>
<p>ja also das mit dem wrapper hab ich probiert aber als ich dann jeden gültigen operator neu schreiben musste <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=":/"
      alt="😕"
    /> dacht ich es muss doch noch was einfacheres geben....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490865</guid><dc:creator><![CDATA[isaias]]></dc:creator><pubDate>Sat, 12 Apr 2008 13:57:30 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Sat, 12 Apr 2008 15:22:33 GMT]]></title><description><![CDATA[<p>In wiefern unterscheiden sich denn die Aufrufe der Funktion? Ich würde mir da sonst überlegen, dass du das mit einem enum erledigen könntest.</p>
<pre><code class="language-cpp">enum {NameType, LocoType ...};
</code></pre>
<p>Und dann einfach beim Funktionsaufruf mitangeben und darauf reagieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490898</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 12 Apr 2008 15:22:33 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Sat, 12 Apr 2008 15:58:41 GMT]]></title><description><![CDATA[<p>isaias schrieb:</p>
<blockquote>
<p>ja also das mit dem wrapper hab ich probiert aber als ich dann jeden gültigen operator neu schreiben musste</p>
</blockquote>
<p>wozu? willst du IdKlassen addieren, dividieren, oder sonst etwas? die einzige operation, die du brauchst, ist anscheinend IsValid. mehr lässt sich aus deinem code heraus nicht sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490918</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sat, 12 Apr 2008 15:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Sat, 12 Apr 2008 20:11:43 GMT]]></title><description><![CDATA[<p>Naja, wenn sich wirklich fachlich unterschiedliche daten dahinter verbergen, kannst Du die Typen auch wrappen:</p>
<pre><code class="language-cpp">struct NameType {   wxString value; };
struct LocoType {   wxString value; };
struct LocaType {   wxString value; };
...
</code></pre>
<p>Ich weiß nicht, ob das Dein Problem löst, aber immerhin bekommst Du damit unterschiedliche Klassen und kannst Gebrauch von overloading und templates machen.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1491050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1491050</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 12 Apr 2008 20:11:43 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Sat, 12 Apr 2008 23:17:38 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>In wiefern unterscheiden sich denn die Aufrufe der Funktion? Ich würde mir da sonst überlegen, dass du das mit einem enum erledigen könntest.</p>
<pre><code class="language-cpp">enum {NameType, LocoType ...};
</code></pre>
<p>Und dann einfach beim Funktionsaufruf mitangeben und darauf reagieren.</p>
</blockquote>
<p>neee also der aufruf sollte ja schon transparent laufen, ich möchte schon das der compiler erkennt welche methode aufzurufen ist,</p>
<p>wenn iwo eine derartige zeile auftaucht</p>
<pre><code class="language-cpp">Test::IdType id;

if(Test::IsValid(id))
{
    Test t;
    t.Id(id); // dieses iss der normale setter für das private member Test::IdType id;
    ....
}

// analog soll aber auch folgendes gehen, also ^^ da ich faul bin wollt ich mir das
// explizite trennen mittels enum sparen sry aber danke ;)

Test::LocaType location;

if(Test::IsValid(location))
{
    Test t;
    t.Loca(location);
}
</code></pre>
<p>queer_boy schrieb:</p>
<blockquote>
<p>isaias schrieb:</p>
<blockquote>
<p>ja also das mit dem wrapper hab ich probiert aber als ich dann jeden gültigen operator neu schreiben musste</p>
</blockquote>
<p>wozu? willst du IdKlassen addieren, dividieren, oder sonst etwas? die einzige operation, die du brauchst, ist anscheinend IsValid. mehr lässt sich aus deinem code heraus nicht sagen.</p>
</blockquote>
<p>also innerhalb der klasse werden ja mit der id berechnungen angefertigt... der prozess um eine neue id zu ermitteln bspw da brauch ichs dereferenzieren addieren und nja das wärs schoooo, aber ich dacht ich beschränk ^^ meine frage mal aufs wesentliche....</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>Naja, wenn sich wirklich fachlich unterschiedliche daten dahinter verbergen, kannst Du die Typen auch wrappen:</p>
<pre><code class="language-cpp">struct NameType {   wxString value; };
struct LocoType {   wxString value; };
struct LocaType {   wxString value; };
...
</code></pre>
<p>Ich weiß nicht, ob das Dein Problem löst, aber immerhin bekommst Du damit unterschiedliche Klassen und kannst Gebrauch von overloading und templates machen.</p>
<p>Gruß,</p>
<p>Simon2.</p>
</blockquote>
<p>alsooo die letzte variante scheint mir noch am sinnigsten aber.... <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=":/"
      alt="😕"
    /><br />
ich hatte nicht vor immer noch auf das gewrappte element zuzugreifen habe schon<br />
konvertierungs operatoren und hoffe ich passende konstruktoren gebastelt gehabt aber<br />
ich konnte nicht wirklich transparent mit dem wrapper arbeiten evtl hab ich da ja einen denkfehler drin<br />
ich hab ^^ den entwurf wieder verworfen aber ich rekonstruier des mal</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
struct Wrapper
{
	T val;
	Wrapper(const T &amp; val_) : val(val) {}
	Wrapper(const Wrapper &amp; wrapper) : val(wrapper.val) {}
	operator T () { return val; }
};
</code></pre>
<p>in der klasse würden die definitionen dann bei einem primitiven datentypen so ausschauen</p>
<pre><code class="language-cpp">class Test
{
    struct IdType : public Wrapper&lt;int&gt; {};
    struct DateType : public wxDateTime {};
....
};
</code></pre>
<p>iwo in der source könnt das dann so aussehen</p>
<pre><code class="language-cpp">Test::IdType a;
Test t;

t.Id(a+1);
</code></pre>
<p>ist klar das er keinen operator+ für const Test as lhs arg und int as rhs arg hat<br />
was wenn ich es aber gern so schreiben würd ^^??? gibt es neben der expliziten konvertierung nicht auch<br />
die möglichkeit explizit implizite konvertierung zu erzeugen???? <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="😃"
    /><br />
alsoooo das a+1 in (int)a+1 umgewandelt würde ich mein der konvertierungsoperator ist ja daaaa ^^<br />
und dann wäre operator+(int, int) jaaa auch kein prob mehr.... aber das wär zuviel des guten nehm ich mal an</p>
<p>öhm ich glaub ich werd wohl einfacha lle operatoren nochmal generisch durch deklarieren müssen oder??<br />
so viele sinds ja adnn auch net...</p>
<p>besten dank für eure hilfe... <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="🙂"
    /> werd mal sehen wie ichs mach entweder zieh ich dsa soooo durch ^^ oder überleg mir doch noch was anderes.....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1491137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1491137</guid><dc:creator><![CDATA[isaias]]></dc:creator><pubDate>Sat, 12 Apr 2008 23:17:38 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Sun, 13 Apr 2008 18:52:10 GMT]]></title><description><![CDATA[<p>isaias schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
struct Wrapper
{
	T val;
	Wrapper(const T &amp; val_) : val(val) {}
	Wrapper(const Wrapper &amp; wrapper) : val(wrapper.val) {}
	operator T () { return val; }
};
</code></pre>
<p>...</p>
</blockquote>
<p>Also mit DEM Ansatz wirst Du vermutlich in Schwulitäten kommen, wenn Du mit Referenzen arbeiten willst ....<br />
Ich denke, Du musst Dich entscheiden: Entweder willst Du separate Typen haben (dann sind sie aber eben auch in ALLEN Belangen separat) oder nicht (dann sind sie es nie).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1491475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1491475</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sun, 13 Apr 2008 18:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Mon, 14 Apr 2008 19:42:30 GMT]]></title><description><![CDATA[<p>function overloading? ^^ drauf gesch***</p>
<p>alsooo hab wie du schon gesagt hast nur die 2 möglichkeiten gehabt.... gefiel mir beides nicht....<br />
der konsistenteste weg ist doch..... den fkt-namen anzupassen gewesen<br />
vor allem wenn es jetzt wächst</p>
<p>der wrapper hats zwar getan ... aber es war nicht wirklich hübsch..... <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="😃"
    /> <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="😃"
    /> <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="😃"
    /> nun gut<br />
danke für die viele hilfe</p>
<p>lg isaias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1492066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1492066</guid><dc:creator><![CDATA[isaias]]></dc:creator><pubDate>Mon, 14 Apr 2008 19:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere typenbezeichner für einen datentypen ohne mehrdeutigkeiten on Tue, 15 Apr 2008 06:41:46 GMT]]></title><description><![CDATA[<p>isaias schrieb:</p>
<blockquote>
<p>...<br />
der konsistenteste weg ist doch..... den fkt-namen anzupassen gewesen<br />
...</p>
</blockquote>
<p>Was meinst Du mit &quot;Funktionsnamen anpassen&quot; ?<br />
und vielleicht könntest Du &quot;nicht gefallen&quot; ein wenig näher spezifizieren: In welcher Situation entstehen dadurch Schwierigkeiten ?<br />
Man kann Dir so schlecht helfen, wenn Du nur Dein subjektives Ästhetikempfinden als Kriterium nimmst... <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1492209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1492209</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 15 Apr 2008 06:41:46 GMT</pubDate></item></channel></rss>