<?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[Array aus Referenzen?]]></title><description><![CDATA[<p>Hi!</p>
<p>Also, nach einigem Stöbern und Suchenbin ich darauf gestoßen, dass man ein Array aus Referenzen auf eine Klasse so lösen kann:</p>
<pre><code class="language-cpp">CNeuron  (&amp;inputs)[];
</code></pre>
<p>soweit so gut, dachte ich.... Jedoch: Mein Compiler frisst das nicht!<br />
egal ob ich jetzt noch eine Größenangabe mache (z.b.</p>
<pre><code class="language-cpp">CNeuron  (&amp;inputs)[20];
</code></pre>
<p>)</p>
<p>In einem anderen Thread wurde dies jedoch als Lösung angeführt.<br />
Ich benutze Dev-C++ 4.9.7.0</p>
<p>Bitte helft mir, das ist ein dringendes Problem.<br />
Ich möchte nämlich auch ein Konstrukt aus Zeiger auf Zeiger möglichst vermeiden. Das mit dem Array auf Referenzen schien mir eine sehr elegante Lösung zu sein, aber wenns mein Compiler nicht annimmt...</p>
<p>Oder:</p>
<p>Wisst Ihr vielleicht eine andere Lösung? Wie kann ich ein Array aus Referenzen basteln, und zwar Referenzen auf diese besagte CNeuron-Klasse</p>
<p>Danke für Eure Hilfe,</p>
<p>lernwilliger hiroki-kun <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/35506/array-aus-referenzen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 19:14:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/35506.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Mar 2003 12:06:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:06:00 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Also, nach einigem Stöbern und Suchenbin ich darauf gestoßen, dass man ein Array aus Referenzen auf eine Klasse so lösen kann:</p>
<pre><code class="language-cpp">CNeuron  (&amp;inputs)[];
</code></pre>
<p>soweit so gut, dachte ich.... Jedoch: Mein Compiler frisst das nicht!<br />
egal ob ich jetzt noch eine Größenangabe mache (z.b.</p>
<pre><code class="language-cpp">CNeuron  (&amp;inputs)[20];
</code></pre>
<p>)</p>
<p>In einem anderen Thread wurde dies jedoch als Lösung angeführt.<br />
Ich benutze Dev-C++ 4.9.7.0</p>
<p>Bitte helft mir, das ist ein dringendes Problem.<br />
Ich möchte nämlich auch ein Konstrukt aus Zeiger auf Zeiger möglichst vermeiden. Das mit dem Array auf Referenzen schien mir eine sehr elegante Lösung zu sein, aber wenns mein Compiler nicht annimmt...</p>
<p>Oder:</p>
<p>Wisst Ihr vielleicht eine andere Lösung? Wie kann ich ein Array aus Referenzen basteln, und zwar Referenzen auf diese besagte CNeuron-Klasse</p>
<p>Danke für Eure Hilfe,</p>
<p>lernwilliger hiroki-kun <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/259149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259149</guid><dc:creator><![CDATA[hiroki]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:11:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Das mit dem Array auf Referenzen schien mir eine sehr elegante Lösung zu sein, aber wenns mein Compiler nicht annimmt...</p>
</blockquote>
<p>Standard-C++ erlaubt keine Arrays die Referenzen enthalten.</p>
<blockquote>
<p>CNeuron (&amp;inputs)[20];</p>
</blockquote>
<p>Das ist kein Array von Referenzen sondern eine Referenz namens inputs auf ein Array von 20 CNeuron-Objekten.</p>
<p>Das dein Compiler das nicht frisst, liegt daran, dass du die Referenz nicht initialisierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259150</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:26:00 GMT]]></title><description><![CDATA[<p>also heißt das, wenn ich so ein konstrukt haben will, bei dem ich ein array abe, das eben z.b. 20 CNeuron-Objekte referenziert, müsste ich unbedingt Zeiger verwenden?<br />
also:</p>
<pre><code class="language-cpp">CNeuron** inputs;
</code></pre>
<p>Hm, nun ja. eigentlich wollte ich dies ja vermeiden. Ich hab ja auch schon folgendes probiert:</p>
<pre><code class="language-cpp">CNeuron&amp; inputs[];
</code></pre>
<p>Aber wie kann ich diese Variablen initialisieren??<br />
Weil: Zum Zeitpunkt der deklaration habe ich noch nicht die werte, mit denen die initialisiert werden sollen... ach was: ich poste einfach den kompletten code, dann kann man mr vielleicht etwas besser weiterhelfen.. ach ja: es sind wohl laut meines compilers noch mehr fehler im code, aber ich möchte erst wissen wie ich dieses problem hier löse, denn sonst löse ich die anderen probleme, und darf dann nochmal von vorn alles abändern, weilsich das kontrukt (datentyp) geändert hat...</p>
<pre><code class="language-cpp">/*
 * 
 * Projekt     :  *** NEURONALE NETZE ***
 * 
 */

#include &lt;stdlib.h&gt;  // wegen: NULL
#include &lt;vector&gt;    // vielleicht vector&lt;&gt; statt ARRAYs

#ifndef __CNEURON_H
#define __CNEURON_H

// Datentyp, mit dem man angibt, welche Aktivierungsfunktion man wählt
typedef enum { linear = 1, quadr, cubic, cut, signum, sigmoid, gauss } TFunctions;
// Datentyp, mit dem man angibt, wie die Gewichtung festgelegt werden soll
typedef enum { standard = 1, constant, randomized } TOmegas;

// Klasse CNeuron
// - Die Klasse CNeuralNet benutzt CNeuron.
class CNeuron
{
    private:
    //
    double   output;          // Ausgang des Neurons
    double   omegas[];        // Gewichtungen der Eingaenge
    CNeuron  &amp;inputs[];     // Array aus Zeigern auf die Outputs der Vorgaenger-Neuronen
    unsigned long numinputs;  // Anzahl der Eingaenge / Vorgaenger-Neuronen
    double   limit;           // Schwellwert
    double   (*f) ( double ); // Zeiger auf die Aktivierungsfunktion

    // Aktivierungsfunktionen
    double f_linear( double z ) { return z; }
    double f_quadr ( double z ) { return z*z; }
    double f_cubic ( double z ) { return z*z*z; }
    double f_cut   ( double z ) { return ( z &gt;= limit ? 1.0 : 0.0 ); }

    public:
    // Konstruktoren
    // Standardkonstruktor ohne Parameter
    CNeuron()
    {
        output = 0.0;  // Output wird auf 0 gesetzt
        limit  = 0.5;  // Die Schwelle wird auf 1/2 festgesetzt als Standard
        inputs = NULL; // Mit keinen Eingaengen/Vorgaengern verknuepfen
        omegas = NULL; // Keine Gewichtungen festlegen
        numinputs = 0; // da keine Vorgaenger festgelegt sind, wird deren Anzahl auf 0 gesetzt
        f = f_linear;  // Standard-Aktivierungsfunktion ist linear
    }
    // Konstruktor, mit ganz vielen Parametern
    CNeuron( CNeuron (&amp;in)[], double w[] = NULL, TFunctions func = linear, double sig = 0.5 )
    {
        // Zuerst wird der Standard-Konstruktor aufgerufen
        CNeuron();
        // Hier wird das Neuronen mit seinen Eingaengen/Vorgaengern verknuepft
        if( in != NULL )
        {
            // Anzahl der Eingaenge/Vorgaenger wird bestimmt und gespeichert
            numinputs = sizeof(in) / sizeof(in[0]);
            // Falls eine Gewichtung angegeben ist ...
            if( w != NULL )
                for( register unsigned long i = 0; i &lt; numinputs; i++ )
                {
                     this-&gt;inputs[ i ] = in[ i ];
                     this-&gt;omegas[ i ] = w [ i ];
                }
            // Falls keine Gewichtung angegeben ist ...
            else
            {
                for( register unsigned long i = 0; i &lt; numinputs; i++ )
                     this-&gt;inputs[ i ] = in[ i ];
                ;
            }
        }
        this-&gt;f     = func; // Legt die gewaehlte Aktivierungsfunktion fest
        this-&gt;limit = sig ; // Legt SIGMA fest ~ ~ ~
    }
    // Destruktor
    ~CNeuron()
    {
        delete[] inputs;
        /*
         * Löscht alle Vorgaenger-Neuronen. 
         * Dies wiederum bewirkt, dass diese Neuronen ihre Vorgaenger löschen, usw.
         * Ergibt eine &quot;Kettenreaktion&quot; von hinten nach vorne.
         * Evtl. Problem: Bereitsgelöschte Neuronen sollen nochmal gelösct werden ?
         */
    }

    // -----------------------------------------------------
    // ******************** FUNKTIONEN *********************
    // -----------------------------------------------------

    // Einstellungen

    void setInputs( CNeuron (&amp;in)[] )
    {

    }

    void setOmegas( int om = 1, double w = 1.0 )
    {
         switch( om )
         {
           case standard   :     if( omegas != NULL )   delete[] omegas;
                                 omegas = new double[ numinputs ];
                                 w = 1.0 / numinputs;
                                 for( register unsigned long i = 0; i &lt; numinputs; i++ )
                                 {
                                      omegas[ i ] = w;
                                 }
                                 break;
           case constant   :     if( omegas != NULL )   delete[] omegas;
                                 omegas = new double[ numinputs ];
                                 for( register unsigned long i = 0; i &lt; numinputs; i++ )
                                 {
                                      omegas[ i ] = w;
                                 }
                                 break;
           case randomized :     if( omegas != NULL )   delete[] omegas;
                                 omegas = new double[ numinputs ];
                                 for( register unsigned long i = 0; i &lt; numinputs; i++ )
                                 {
                                      omegas[ i ] = rand();
                                 }
                                 break;

           default:
         }
    }

    // Berechnungen

    double evaluate()
    {
        double sum = 0.0;
        for( register unsigned long i = 0; i &lt; numinputs; i++ )
             sum += omegas[i] * inputs[i];
        return ( output = f( sum ) );
    }

};

#endif
</code></pre>
<p>danke nochmals,</p>
<p>immernoch neugieriger und lernwilliger hiroki-kun <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/259151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259151</guid><dc:creator><![CDATA[hiroki]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:26:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:32:00 GMT]]></title><description><![CDATA[<p>mit'n vector</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259152</guid><dc:creator><![CDATA[hufe]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:32:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:38:00 GMT]]></title><description><![CDATA[<p>also praktisch:</p>
<pre><code class="language-cpp">vector&lt; CNeuron&amp; &gt; inputs;
</code></pre>
<p>ginge das so?? is das richtig?</p>
<p>hiroki</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259153</guid><dc:creator><![CDATA[hiroki]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:38:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:44:00 GMT]]></title><description><![CDATA[<p>ne mit zeiger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259154</guid><dc:creator><![CDATA[z]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:45:00 GMT]]></title><description><![CDATA[<p>vector&lt; CNeuron* &gt; inputs;</p>
<p>mit referenzen geht nicht, weil du die ja nicht sofort initialisieren kannst und es keine null-referenzen gibt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259155</guid><dc:creator><![CDATA[z]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:45:00 GMT]]></title><description><![CDATA[<p>na. dann sagt doch bitte mal wie...</p>
<p>is doch nur eine zeile quellcode!</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259156</guid><dc:creator><![CDATA[hiroki]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 12:46:00 GMT]]></title><description><![CDATA[<p>aaah. ok danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/259157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259157</guid><dc:creator><![CDATA[hiroki]]></dc:creator><pubDate>Tue, 18 Mar 2003 12:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Tue, 18 Mar 2003 15:01:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class CNeuron
{
private:
    double   (*f) ( double ); // Zeiger auf die Aktivierungsfunktion

    // Aktivierungsfunktionen
    double f_linear( double z ) { return z; }

public:
    CNeuron()
    {
        f = f_linear;  // Standard-Aktivierungsfunktion ist linear
    }
</code></pre>
<p>das geht so nicht <a href="http://www.c-plusplus.net/forum/topic,39481.html" rel="nofollow">nicht statische Methode mit Algorithmus verbinden</a> <a href="http://www.c-plusplus.net/forum/topic,39450.html" rel="nofollow">Zeiger auf Member-Funktionen (es geht doch !)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/259158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/259158</guid><dc:creator><![CDATA[Gerard]]></dc:creator><pubDate>Tue, 18 Mar 2003 15:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Thu, 11 Feb 2010 14:49:29 GMT]]></title><description><![CDATA[<p>deine aktivierungsfunktionen sind keine und eine lösch-kettenreaktion gibts auch keine</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1854227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1854227</guid><dc:creator><![CDATA[___g]]></dc:creator><pubDate>Thu, 11 Feb 2010 14:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Thu, 11 Feb 2010 15:01:54 GMT]]></title><description><![CDATA[<p>Ob er wohl 7 Jahre auf diese Antwort gewartet hat <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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1854237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1854237</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 11 Feb 2010 15:01:54 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen? on Thu, 11 Feb 2010 15:05:52 GMT]]></title><description><![CDATA[<p>Na endlich kann ich weiterarbeiten... Puh...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1854239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1854239</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 11 Feb 2010 15:05:52 GMT</pubDate></item></channel></rss>