<?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[Funktionsübergabe aus Klasse mit Rückgabetyp void in die main Funktion]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich merke ich habe ein konzeptionelles Verständnisproblem.</p>
<p>Ich habe in einer Klasse eine methode static gesetzt, die Methode hat keine Argumente und gibt void zurück. Bei der Implementierung der Methode habe ich ein paar Sachen gerechnet. Ich habe sie getestet und sie funktioniert. Nun rufe ich diese Methode in der main Funktion auf und frage mich nun, wie ich der main Funktion das Ergebnis der Rechnung übergebe. Wie geht das konzeptionell.</p>
<p>Hier mein relevanter Code:</p>
<p>In der main Funktion:</p>
<pre><code>Pattern::Orthogonal();      // Creates orthogonal pattern

/*
for(int ik=0; ik &lt; trained._MaxPattern; ik++){
 for(int il=0; il &lt; network._AdSize; il++){
 print &lt;&lt; orthogonal[ik][il];
 }
print &lt;&lt; endl;
}
*/
</code></pre>
<p>Das kommentierte möchte ich als nächstes machen und die matrix orthogonal soll aus meiner Funktion kommen</p>
<p>Im Header meiner Klasse mit public Zugriff:</p>
<pre><code>static void Orthogonal(); // Create orthogonal patterns
</code></pre>
<p>Und im meiner cpp Datei zur implementierung</p>
<pre><code>void Pattern::Orthogonal() { 
// Initialize random sequence
Network net;
std::vector&lt;int&gt; sequence (net._AdSize);
for (int i = 0; i &lt; net._AdSize; i++) sequence[i] = i; 
Routine::FisherYates(sequence);  // Shuffle the sequence

// Initialize matrix for storing the pattern
Pattern L;          
std::vector&lt; std::vector&lt;int&gt; &gt; orthogonal(L._MaxPattern, std::vector&lt;int&gt;(net._AdSize));

std::stringstream sstr;
int z;
z = net._AdSize/L._MaxPattern;
Pattern I;
int ik, il; ik=0; il=0;

// Set orthogonal pattern
 for(ik=0; ik &lt; L._MaxPattern; ik++) {
  for(sstr.str()[il]; il &lt; z; il++){
  orthogonal[ik][sequence[il&rsqb;&rsqb; = 1;
  }
 z = z + I._NumOnes;
 }
}
</code></pre>
<p>Wie könnte man nun das Ergebnis der Funktion in die auskommentierte for Schleife in der main Funktion übergeben?</p>
<p>Danke und Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337870/funktionsübergabe-aus-klasse-mit-rückgabetyp-void-in-die-main-funktion</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 15:25:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337870.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 May 2016 21:11:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionsübergabe aus Klasse mit Rückgabetyp void in die main Funktion on Fri, 06 May 2016 21:12:19 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich merke ich habe ein konzeptionelles Verständnisproblem.</p>
<p>Ich habe in einer Klasse eine methode static gesetzt, die Methode hat keine Argumente und gibt void zurück. Bei der Implementierung der Methode habe ich ein paar Sachen gerechnet. Ich habe sie getestet und sie funktioniert. Nun rufe ich diese Methode in der main Funktion auf und frage mich nun, wie ich der main Funktion das Ergebnis der Rechnung übergebe. Wie geht das konzeptionell.</p>
<p>Hier mein relevanter Code:</p>
<p>In der main Funktion:</p>
<pre><code>Pattern::Orthogonal();      // Creates orthogonal pattern

/*
for(int ik=0; ik &lt; trained._MaxPattern; ik++){
 for(int il=0; il &lt; network._AdSize; il++){
 print &lt;&lt; orthogonal[ik][il];
 }
print &lt;&lt; endl;
}
*/
</code></pre>
<p>Das kommentierte möchte ich als nächstes machen und die matrix orthogonal soll aus meiner Funktion kommen</p>
<p>Im Header meiner Klasse mit public Zugriff:</p>
<pre><code>static void Orthogonal(); // Create orthogonal patterns
</code></pre>
<p>Und im meiner cpp Datei zur implementierung</p>
<pre><code>void Pattern::Orthogonal() { 
// Initialize random sequence
Network net;
std::vector&lt;int&gt; sequence (net._AdSize);
for (int i = 0; i &lt; net._AdSize; i++) sequence[i] = i; 
Routine::FisherYates(sequence);  // Shuffle the sequence

// Initialize matrix for storing the pattern
Pattern L;          
std::vector&lt; std::vector&lt;int&gt; &gt; orthogonal(L._MaxPattern, std::vector&lt;int&gt;(net._AdSize));

std::stringstream sstr;
int z;
z = net._AdSize/L._MaxPattern;
Pattern I;
int ik, il; ik=0; il=0;

// Set orthogonal pattern
 for(ik=0; ik &lt; L._MaxPattern; ik++) {
  for(sstr.str()[il]; il &lt; z; il++){
  orthogonal[ik][sequence[il&rsqb;&rsqb; = 1;
  }
 z = z + I._NumOnes;
 }
}
</code></pre>
<p>Wie könnte man nun das Ergebnis der Funktion in die auskommentierte for Schleife in der main Funktion übergeben?</p>
<p>Danke und Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495088</guid><dc:creator><![CDATA[cpp_Jungspund]]></dc:creator><pubDate>Fri, 06 May 2016 21:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsübergabe aus Klasse mit Rückgabetyp void in die main Funktion on Fri, 06 May 2016 21:51:10 GMT]]></title><description><![CDATA[<p>Deinen <code>std::vector&lt; std::vector&lt;int&gt; &gt;</code> zurückgeben statt gar keinen Rückgabewert zu haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495090</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Fri, 06 May 2016 21:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsübergabe aus Klasse mit Rückgabetyp void in die main Funktion on Fri, 06 May 2016 22:21:53 GMT]]></title><description><![CDATA[<p>Ich habe den Rückgabetyp geändert.</p>
<p>im Header:</p>
<pre><code>static std::vector&lt; std::vector&lt;int&gt; &gt; Orthogonal();
</code></pre>
<p>In der .cpp Datei:</p>
<pre><code>std::vector&lt; std::vector&lt;int&gt; &gt; Pattern::Orthogonal() { 
// Initialize random sequence
Network net;
std::vector&lt;int&gt; sequence (net._AdSize);
for (int i = 0; i &lt; net._AdSize; i++) sequence[i] = i; 
Routine::FisherYates(sequence);  // Shuffle the sequence

// Initialize matrix for storing the pattern
Pattern L;          
std::vector&lt; std::vector&lt;int&gt; &gt; orthogonal(L._MaxPattern, std::vector&lt;int&gt;(net._AdSize));

std::stringstream sstr;
int z;
z = net._AdSize/L._MaxPattern;
Pattern I;
int ik, il; ik=0; il=0;

// Set orthogonal pattern
 for(ik=0; ik &lt; L._MaxPattern; ik++) {
  for(sstr.str()[il]; il &lt; z; il++){
  orthogonal[ik][sequence[il&rsqb;&rsqb; = 1;
  }
 z = z + I._NumOnes;
 }
return orthogonal;
}
</code></pre>
<p>In der main Funktion:</p>
<pre><code>Pattern::Orthogonal();      // Creates orthogonal pattern

for(int ik=0; ik &lt; trained._MaxPattern; ik++){
 for(int il=0; il &lt; network._AdSize; il++){
 cout &lt;&lt; orthogonal[ik][il];
 }
cout &lt;&lt; endl;
}
</code></pre>
<p>Wenn ich in der main Funktion dann aber die Schleife starte kommt</p>
<pre><code>error: ‘orthogonal’ was not declared in this scope
</code></pre>
<p>Wie übergibe ich nun meine Matrix dieser Schleife?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495093</guid><dc:creator><![CDATA[cpp_Jungspund]]></dc:creator><pubDate>Fri, 06 May 2016 22:21:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsübergabe aus Klasse mit Rückgabetyp void in die main Funktion on Fri, 06 May 2016 23:00:29 GMT]]></title><description><![CDATA[<p>Wird ja immer trolliger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495094</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 06 May 2016 23:00:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsübergabe aus Klasse mit Rückgabetyp void in die main Funktion on Fri, 06 May 2016 23:09:18 GMT]]></title><description><![CDATA[<p>Ich habe es herausgefunden. In der main Funktion habe ich eine matrix deklariert und diese dann mit der Funktion aufgerufen. Funktioniert <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>
<pre><code>std::vector&lt; std::vector&lt;int&gt; &gt; orthogonal(trained._MaxPattern, std::vector&lt;int&gt;(network._AdSize));
orthogonal=Pattern::Orthogonal();
</code></pre>
<p>Danke für die Hilfe sebi707. Es ergibt jetzt mehr Sinn.</p>
<p>@manni66<br />
Antworte bitte nicht mehr auf meine Fragen. So dumme Kommentare brauche ich echt nicht. Spiele dich woanders auf... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495096</guid><dc:creator><![CDATA[cpp_Jungspund]]></dc:creator><pubDate>Fri, 06 May 2016 23:09:18 GMT</pubDate></item></channel></rss>