<?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[referentielle Parametertypen]]></title><description><![CDATA[<p>Ich hab mal ne kleine Frage: wenn ich bei Parametern<br />
eine Referenz so:</p>
<pre><code>foo(Type *otype)
</code></pre>
<p>angebe, dann muss ich ja nen Pointer übergeben. Wenn ich es nun<br />
aber so mache:</p>
<pre><code>foo(Type &amp;otype)
</code></pre>
<p>kann man ja nur dereferenzierte Sache geben, richtig?Es ist dann<br />
aber trotzdem referentiell?!</p>
<p>kann mir jemand erklären was genau beim zweiten typ passiert?<br />
(hab mal gelesen das das so einer dynamischer Referenz-typ sein<br />
soll!in der gibs das jedenfall nich in C)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189922/referentielle-parametertypen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 16:13:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189922.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Aug 2007 15:20:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to referentielle Parametertypen on Sat, 18 Aug 2007 15:20:10 GMT]]></title><description><![CDATA[<p>Ich hab mal ne kleine Frage: wenn ich bei Parametern<br />
eine Referenz so:</p>
<pre><code>foo(Type *otype)
</code></pre>
<p>angebe, dann muss ich ja nen Pointer übergeben. Wenn ich es nun<br />
aber so mache:</p>
<pre><code>foo(Type &amp;otype)
</code></pre>
<p>kann man ja nur dereferenzierte Sache geben, richtig?Es ist dann<br />
aber trotzdem referentiell?!</p>
<p>kann mir jemand erklären was genau beim zweiten typ passiert?<br />
(hab mal gelesen das das so einer dynamischer Referenz-typ sein<br />
soll!in der gibs das jedenfall nich in C)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346971</guid><dc:creator><![CDATA[Basingstoke]]></dc:creator><pubDate>Sat, 18 Aug 2007 15:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sat, 18 Aug 2007 15:22:52 GMT]]></title><description><![CDATA[<p>Eine Referenz ist in C++ eine vereinfachte Schreibweise für Zeiger.<br />
Beide Varianten von foo() nehmen Parameter vom Typ call-by-reference.<br />
Das heisst, es wird keine Kopie des Parameters übergeben, sondern die Adresse ( das Objekt an sich ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346972</guid><dc:creator><![CDATA[ChrisJ]]></dc:creator><pubDate>Sat, 18 Aug 2007 15:22:52 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sat, 18 Aug 2007 17:31:07 GMT]]></title><description><![CDATA[<p>Man koennte auch behaupten, das erste ist ein call by value, und der value ist ein e Adresse. Man sieht manchmal auch, das Adressen per reference uebergeben werden, um den Zeiger selbst zu verbiegen. f'`8k</p>
<p>Gruß, TGGC (<a href="http://www.games-net.de/hosted/tggc" rel="nofollow">making great games since 1992</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347031</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Sat, 18 Aug 2007 17:31:07 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sat, 18 Aug 2007 19:58:28 GMT]]></title><description><![CDATA[<p>ich bevorzuge erstere schreibweise, weil dann auch schon allein durch die Benutzung klar wird, ob man jetzt die Daten an die Funktion als referenz oder Kopie schickt. Die referenz würde ich nur dann verwenden, wenn es nicht anders geht (Kopierkonstruktor).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347069</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sat, 18 Aug 2007 19:58:28 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sat, 18 Aug 2007 21:16:58 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>ich bevorzuge erstere schreibweise, weil dann auch schon allein durch die Benutzung klar wird, ob man jetzt die Daten an die Funktion als referenz oder Kopie schickt. Die referenz würde ich nur dann verwenden, wenn es nicht anders geht (Kopierkonstruktor).</p>
</blockquote>
<p>Du beforzugst also einen Zeiger als Parameter?<br />
Dann musst du aber immer</p>
<pre><code class="language-cpp">parameter-&gt;foo
</code></pre>
<p>schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347099</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Sat, 18 Aug 2007 21:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sat, 18 Aug 2007 21:59:04 GMT]]></title><description><![CDATA[<p>Basingstoke schrieb:</p>
<blockquote>
<p>Ich hab mal ne kleine Frage: wenn ich bei Parametern<br />
eine Referenz so:</p>
<pre><code>foo(Type *otype)
</code></pre>
<p>angebe, dann muss ich ja nen Pointer übergeben. Wenn ich es nun<br />
aber so mache:</p>
<pre><code>foo(Type &amp;otype)
</code></pre>
<p>kann man ja nur dereferenzierte Sache geben, richtig?Es ist dann<br />
aber trotzdem referentiell?!</p>
</blockquote>
<p>Im ersten Fall wird eine Kopie des Ausdrucks übergeben - call by value und das value ist vom Typ (Type *).<br />
Das zweite ist call by reference. Du übergibst einen referenzierbaren(!) Typ (Type) und übertragen wird die Adresse (&amp;) des Typs. Intern ist das identisch (es wird der Zeiger auf die Variable übergeben). In der Funktion hast Du nun eine Variable vom Typ (Type), die sich auch wie ein (Type) verhält. Sie muss also existieren.<br />
Das ist ein sehr großer Vorteil und deswegen solltest Du (Type &amp;) nahezu grundsätzlich nutzen, wenn Du in C (Type <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="😉"
    /> nutzen würdest. Du kannst sicher sein, dass die Variable eine gültige Referenz enthält, bei (Type <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="😉"
    /> kann ja auch null sein.<br />
Darum (Type *), wenn Du Null erlauben kannst und (Type &amp;), wenn Du einen Zeiger übergeben möchtest, der nicht Null sein soll.</p>
<p>Das Funktions-Argument muss referenzierbar sein, also ein gültiger Speicherbereich, genau wie bei (Type *):</p>
<pre><code class="language-cpp">void foo( int &amp; ) { printf( &quot;Referenz: %d\n&quot;, i ); i++; }
void bar( int * ) { printf( &quot;Zeiger: %d\n&quot;, *i ); *i++; }

int main( void )
{
  int i = 1;

  foo( i );  // ok, referenz auf i wird erstellt, 1 wird ausgeben, i wird 2
  bar( &amp;i ); // ok, Zeiger &amp;i wird kopiert, 2 wird ausgeben, i wird 3
  foo( 1 );  // geht nicht, 1 ist nicht referenzierbar
  bar( 1 );  // geht nicht, 1 ist nicht vom Typ (int *)
  foo( NULL ); // geht nicht, NULL ist nicht wirklich int, auf jeden Fall nicht referenzierbar
  bar( NULL ); // geht, knallt aber.

  // (Type &amp;) kann man natürlich auch austricksen.

  int * j = NULL;
  foo( *j );   // okay, knallt aber
  bar(  j );   // okay, knallt aber
}
</code></pre>
<p>Verzichtest Du soweit wie möglich auf Zeiger (kein int *j, kein (Type *), verringerst Du die Gefahr auf NULL-Pointer deutlich und damit die Gefahr eines fehlerhaften Zugriffs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347120</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Sat, 18 Aug 2007 21:59:04 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 01:10:15 GMT]]></title><description><![CDATA[<p>DEvent schrieb:</p>
<blockquote>
<p>Krux schrieb:</p>
<blockquote>
<p>//...</p>
</blockquote>
<p>Du beforzugst also einen Zeiger als Parameter?<br />
Dann musst du aber immer</p>
<pre><code class="language-cpp">parameter-&gt;foo
</code></pre>
<p>schreiben.</p>
</blockquote>
<p>imho hat der -&gt; op mehr style als der . op <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/1347159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347159</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sun, 19 Aug 2007 01:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 01:30:07 GMT]]></title><description><![CDATA[<p>(*var).methode() ftw! <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/1347163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347163</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 19 Aug 2007 01:30:07 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 08:17:22 GMT]]></title><description><![CDATA[<p>ChrisJ schrieb:</p>
<blockquote>
<p>Eine Referenz ist in C++ eine vereinfachte Schreibweise für Zeiger...</p>
</blockquote>
<p>Nur ergänzend (um Missverständnissen vorzubeugen): Ja und Nein... eine Referenz hat Eigenschaften, die sie von einem Zeiger unterscheiden: Man kann sie nicht &quot;umbiegen&quot;, nicht referenzieren, .... .</p>
<p>Trotzdem sind natürlich beides &quot;Verweise auf Objekte&quot;, mit denen man &quot;call by reference&quot; umsetzen kann (bitte jetzt nicht mit dem &quot;call-by-X&quot;-Verständnis einer anderen Sprache kommen - andere Sprachen, andere Sitten <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/1347196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347196</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sun, 19 Aug 2007 08:17:22 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 08:47:49 GMT]]></title><description><![CDATA[<p>danke an alle!</p>
<p>gehört diese call-by-reference sache zur &quot;ihr sollt weniger<br />
eigene Pointer verwenden&quot;-Strategie?also damit meine ich das<br />
man auch in der c++ std-lib viele implementationen hat die<br />
dafür sprechen(vectoren, maps, bitsets)!</p>
<p>Hat einer eigentlich eine Ahnung warum Interfaces nicht in<br />
C++ implementiert wurden? alle sagen ja es liegt daran das es<br />
Mehrfachvererbung gibt!aber interfaces können ja mehr als nur<br />
Mehrfachvererbung, oder? Also es gibt in meinen Augen keine<br />
schöne Variante abstrakte Klassen zu <a href="http://machen.na" rel="nofollow">machen.na</a> klar geht es<br />
aber ich find das irgendwie ekelig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347206</guid><dc:creator><![CDATA[Basingstoke]]></dc:creator><pubDate>Sun, 19 Aug 2007 08:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 09:30:34 GMT]]></title><description><![CDATA[<p>TravisG schrieb:</p>
<blockquote>
<p>imho hat der -&gt; op mehr style als der . op <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>
</blockquote>
<p>Endlich ist mal jemand meiner meinung! Das sieht doch viel besser aus und macht erst die refernz sichtbar. Bei dem . ding kann es einen schon mal passieren(schussel), dass man in erwartung einer kopie veränderungen etc. macht, die sich dann aber auf das quellobjekt auswirken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347229</guid><dc:creator><![CDATA[dgdg]]></dc:creator><pubDate>Sun, 19 Aug 2007 09:30:34 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 10:00:04 GMT]]></title><description><![CDATA[<p>Basingstoke schrieb:</p>
<blockquote>
<p>Hat einer eigentlich eine Ahnung warum Interfaces nicht in<br />
C++ implementiert wurden? alle sagen ja es liegt daran das es<br />
Mehrfachvererbung gibt!aber interfaces können ja mehr als nur<br />
Mehrfachvererbung, oder? Also es gibt in meinen Augen keine<br />
schöne Variante abstrakte Klassen zu <a href="http://machen.na" rel="nofollow">machen.na</a> klar geht es<br />
aber ich find das irgendwie ekelig.</p>
</blockquote>
<p>Interfaces sind eine Notlösung in Sprachen, die keine Mehrfachvererbung erlauben wollen. Mehrfachvererbung ist kompliziert, sobald OOP verwendet wird. Solange man nur Klassen ohne virtual verwendet, ist Mehrfachvererbung aber eine sehr praktische Sache.</p>
<p>C++ unterstützt Mehrfachvererbung, also braucht man keine &quot;interfaces&quot;.<br />
Du kannst sie dennoch nachbilden, indem Du eine Klasse mit rein pure virtual functions erzeugt:</p>
<pre><code class="language-cpp">class MyInterface
{
  public:
    virtual void Func1( void ) = 0;
    virtual bool Func2( bool ) = 0;
    // usw.
};
</code></pre>
<p>Ein zusätzliches Schlüsselwort ist in C also nicht erforderlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347248</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Sun, 19 Aug 2007 10:00:04 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 10:13:39 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Interfaces sind eine Notlösung in Sprachen, die keine Mehrfachvererbung erlauben wollen.</p>
</blockquote>
<p>nein, mehrfachvererbung wurde in solche sprachen <strong>bewusst nicht eingebaut</strong>, z.b. wegen: <a href="http://en.wikipedia.org/wiki/Diamond_problem" rel="nofollow">http://en.wikipedia.org/wiki/Diamond_problem</a><br />
mehrfachimplementation von interfaces dagegen ist unproblematisch.<br />
<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/1347252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347252</guid><dc:creator><![CDATA[Undertaker]]></dc:creator><pubDate>Sun, 19 Aug 2007 10:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 10:41:38 GMT]]></title><description><![CDATA[<p>Undertaker schrieb:</p>
<blockquote>
<p>Xin schrieb:</p>
<blockquote>
<p>Interfaces sind eine Notlösung in Sprachen, die keine Mehrfachvererbung erlauben wollen.</p>
</blockquote>
<p>nein, mehrfachvererbung wurde in solche sprachen <strong>bewusst nicht eingebaut</strong>, z.b. wegen: <a href="http://en.wikipedia.org/wiki/Diamond_problem" rel="nofollow">http://en.wikipedia.org/wiki/Diamond_problem</a><br />
mehrfachimplementation von interfaces dagegen ist unproblematisch.<br />
<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>Ich weiß. Das Diamond-Problem tritt aber nur auf, wenn man die Technik nicht zu verwenden weiß. Virtueller Mehrfachvererbung kann eine Lösung sein, um wieder eine klare Hirachie hinzubekommen, wenn auch nur eine Lösung 2. Klasse. Den Diamanten kann man mit etwas Verstand durchaus vermeiden, von daher sehe ich ihn als Designfehler und Designfehler kann man keinem Sprachfeature zur Last legen.</p>
<p>Ich sehe das wie einen Führerschein. Wer einen PKW Fahren sollte, wird trotzdem geschult, wenn er einen LKW fahren will. Beim Programmieren ist das häufig leider nicht so. Wer ein &quot;Hallo Welt&quot; schreiben kann, darf ungestraft Mehrfachvererbung gegen die Wand fahren.<br />
Bei vielen Sprachen hat man sich deswegen entschlossen, die LKWs abzuschaffen.<br />
Schade für die Leute mit Führerschein.</p>
<p>Zeiger wollte man in Java ja auch schon abschaffen, aber da nimmt man wohl lieber das Risiko in Kauf, dass die Entwickler Mist bauen, als das es keine Java-Entwickler gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347274</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Sun, 19 Aug 2007 10:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 12:18:05 GMT]]></title><description><![CDATA[<p>Man kann das auch unprovokanter Formulieren als:<br />
&quot;Interface&quot; ist ein &quot;Spezialfall von Mehrfachvererbung&quot;.<br />
Ergo: C++ <em>hat</em> interfaces.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347322</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sun, 19 Aug 2007 12:18:05 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 12:22:23 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Bei vielen Sprachen hat man sich deswegen entschlossen, die LKWs abzuschaffen.<br />
Schade für die Leute mit Führerschein.</p>
</blockquote>
<p>keine harmlosen LKW's, ich würde eher sagen: man hat sich dazu entschieden, selbstgebastelte und überfrisierte fahrzeuge vom strassenverkehr auszuschliessen. schade für police chaser, stuntmen und ähnliche freaks <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>btw: es ist ja nicht so, dass interfaces eine verkrüppelte art der mehrfachvererbung sein sollen, sondern sie sind eine weiterentwicklung.<br />
in sprachen, die mehrfachvererbung statt interfaces haben, muss man sich interfaces mit tricks wie abstrakten klassen nachbauen (mit ausnahmen, ich glaub' in C# gibt es beides).<br />
<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/1347325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347325</guid><dc:creator><![CDATA[Undertaker]]></dc:creator><pubDate>Sun, 19 Aug 2007 12:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 12:34:38 GMT]]></title><description><![CDATA[<p>Undertaker schrieb:</p>
<blockquote>
<p>(mit ausnahmen, ich glaub' in <strong>C#</strong> gibt es beides).<br />
<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>kurz:nö!in C# gibs auch bloß interfaces nichts anderes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347334</guid><dc:creator><![CDATA[Basingstoke]]></dc:creator><pubDate>Sun, 19 Aug 2007 12:34:38 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 13:26:08 GMT]]></title><description><![CDATA[<p>Undertaker schrieb:</p>
<blockquote>
<p>Xin schrieb:</p>
<blockquote>
<p>Bei vielen Sprachen hat man sich deswegen entschlossen, die LKWs abzuschaffen.<br />
Schade für die Leute mit Führerschein.</p>
</blockquote>
<p>keine harmlosen LKW's, ich würde eher sagen: man hat sich dazu entschieden, selbstgebastelte und überfrisierte fahrzeuge vom strassenverkehr auszuschliessen. schade für police chaser, stuntmen und ähnliche freaks <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>Wer Autos bauen kann, kann sehr gute und sichere Eigenbauten auf die Straße schicken. In C++ zumindest.<br />
Ich würde allerdings auch keine tiefergelegten Golf kaufen, wenn der Dorfdepp den zusammengeschraubt hat und damit die Felder bestellen kann.</p>
<p>Die Informatik hat keinen TÜV.<br />
Die Lösung ist nur noch Standard-Autos zu erlauben. Die fahren sicherer. Stimmt.<br />
Aber diese Sprachen schließen alle Informatiker aus, die Spaß am Rennsport haben, Schwertransporte benötigen, Motorradfahrer, Modellbauer, und viele, viele mehr.</p>
<p>Ich kenne noch bessere Formen: nur noch Standard-Algorithmen, forderte mal jemand in einer Firma, in der ich arbeitete. Nicht die Lösung ist das Problem, sondern die standardisierte Beschreibung der einer Lösung. Das funktioniert super bei standardisierten Problemen... merkt jemand was!?.</p>
<p>Undertaker schrieb:</p>
<blockquote>
<p>btw: es ist ja nicht so, dass interfaces eine verkrüppelte art der mehrfachvererbung sein sollen, sondern sie sind eine weiterentwicklung.</p>
</blockquote>
<p>Die Fachbegriffe hinter dem Joke ändern sich alle 5 Jahre, aber der Joke ist irgendwie immer der Gleiche.<br />
Vor 5 Jahren wurde der Joke als &quot;Java ist eine Weiterentwicklung von C++&quot; erzählt.<br />
Java erlaubt bis heute keine Templates.</p>
<p>Undertaker schrieb:</p>
<blockquote>
<p>in sprachen, die mehrfachvererbung statt interfaces haben, muss man sich interfaces mit tricks wie abstrakten klassen nachbauen (mit ausnahmen, ich glaub' in C# gibt es beides).<br />
<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>C# hat nur interfaces.<br />
Was ich an Interfaces nicht mag ist, dass man ein Interface mehrfach implementieren muss, sich die Funktionen hinter der Schnittstelle aber oftmals nicht ändern. Das Problem hat man auch <em>schon</em> erkannt, dafür kommt ja jetzt eine Technik, wo man die Funktionen aus anderen Klassen in den eigenen Namensraum übernehmen kann. Ich habe den Namen grade nicht im Kopf, aber an der Beschreibung fällt vielleicht dem einen oder anderen etwas auf...</p>
<p>Statt Mehrfachvererbung heißt die Zukunft also 'Interfaces und Übernahme der Methode aus der Basisklasse'. Das ist viel besser, ein deutlicher Schritt in die Zukunft und man benutzt keine böse Mehrfachvererbung.</p>
<p>Okay, ist das gleiche wie Mehrfachvererbung, aber es heißt wenigstens anders und man muss mehr tippen.<br />
Man muss nicht alles ernst nehmen, was in der Informatik entwickelt wird. Das schließt Interfaces in meinen Augen ein.</p>
<p>Ich rate eher zu einer Sprache mit Mehrfachvererbung und guter Lektüre zu dem Thema. Die Dinge verstanden zu haben ist hilfreicher, als die Dinge nicht anzufassen, damit man nichts kaputt macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347406</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Sun, 19 Aug 2007 13:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 13:54:35 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Die Lösung ist nur noch Standard-Autos zu erlauben. Die fahren sicherer. Stimmt.<br />
Aber diese Sprachen schließen alle Informatiker aus, die Spaß am Rennsport haben, Schwertransporte benötigen, Motorradfahrer, Modellbauer, und viele, viele mehr.</p>
</blockquote>
<p>naja, man ist ja nicht auf nur eine sprache festgenagelt.<br />
willst du fahrzeuge aus sicheren und vielfach erprobten standardkomponenten bauen, dann nimm sprache X, die diese vorgehensweise begünstigt.<br />
willst du ein super-science-fiction-mässiges gefährt basteln, wie noch niemand zuvor, dann nimm sprache Y, mit der man sogar die gewindegänge jeder schraube selbst feilen kann (wenn es sein muss). nur umgekehrt, also z.b. sprache X zu verwenden, wenn Y vorteilhafter wäre, wär' doof.</p>
<p>Xin schrieb:</p>
<blockquote>
<p>Java erlaubt bis heute keine Templates.</p>
</blockquote>
<p>Java hat noch nicht mal #defines, z.b. für bedingte compilierung und so...<br />
<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/1347454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347454</guid><dc:creator><![CDATA[Undertaker]]></dc:creator><pubDate>Sun, 19 Aug 2007 13:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 14:01:52 GMT]]></title><description><![CDATA[<p>es ist ja nicht so dass man gezwungen ist Jave oder C# zu nutzen, das ist jedermanns freie entscheidung, und ich hab mich für C++ entschieden. Genauso wenig, wie jemand gezwungen ist mit ner Ente zu fahren, wenn er nen Sportwagen haben will. Die Vielfalt der Sprachen und Stiele sind schon vorteilhaft, denn damit gibt es noch mehr wege die zur Lösung führen. Vieleicht ist einer davon ja kürzer.</p>
<p>Edit:<br />
da war wohl einer schneller mit dem gleichen kommentar.<br />
Zu #defines in Java, alles soll auf allen plattformen laufen, und den Debugmodus kann man nicht abschalten, ist doch 1a.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347460</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 19 Aug 2007 14:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to referentielle Parametertypen on Sun, 19 Aug 2007 16:00:28 GMT]]></title><description><![CDATA[<p>Undertaker schrieb:</p>
<blockquote>
<p>Xin schrieb:</p>
<blockquote>
<p>Bei vielen Sprachen hat man sich deswegen entschlossen, die LKWs abzuschaffen.<br />
Schade für die Leute mit Führerschein.</p>
</blockquote>
<p>keine harmlosen LKW's, ich würde eher sagen: man hat sich dazu entschieden, selbstgebastelte und überfrisierte fahrzeuge vom strassenverkehr auszuschliessen. schade für police chaser, stuntmen und ähnliche freaks ;)...</p>
</blockquote>
<p>Also WENN schon so ein Vergleich, dann würde ich eher sagen: Man hat sämtliche Schraubenzieher aus dem Verkehr gezogen, damit ja niemand mehr seinen Trabbi in was besseres (schneller oder größer oder tragfähiger oder benzinsparender oder ...) aufmotzen kann. <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/1347634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347634</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sun, 19 Aug 2007 16:00:28 GMT</pubDate></item></channel></rss>