<?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[Verständnisfragen]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe leider nur Basiskenntnisse in C++.</p>
<p>In einem Quellcode gibt es folgende Zeile:</p>
<pre><code>patch_.boundaryMesh().mesh()();
</code></pre>
<p>Was heißt dieses patch_ , und was bewirkt dieser Befehl ?</p>
<p>Genauso gibt es noch:</p>
<pre><code class="language-cpp">const liste&amp; gesPunkte = patch().meshPoints()
</code></pre>
<p>Wie kann ich herausfinden, was außer patch().meshPoints(), also z.B. patch().meshFaces() (oder halt was anderes, das will ich ja herausfinden <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="😉"
    /> ) möglich ist ?</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248139/verständnisfragen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 06:18:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248139.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Aug 2009 08:37:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 08:37:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe leider nur Basiskenntnisse in C++.</p>
<p>In einem Quellcode gibt es folgende Zeile:</p>
<pre><code>patch_.boundaryMesh().mesh()();
</code></pre>
<p>Was heißt dieses patch_ , und was bewirkt dieser Befehl ?</p>
<p>Genauso gibt es noch:</p>
<pre><code class="language-cpp">const liste&amp; gesPunkte = patch().meshPoints()
</code></pre>
<p>Wie kann ich herausfinden, was außer patch().meshPoints(), also z.B. patch().meshFaces() (oder halt was anderes, das will ich ja herausfinden <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="😉"
    /> ) möglich ist ?</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763923</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 08:37:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 08:46:00 GMT]]></title><description><![CDATA[<p>Das ist irgend ein Objekt, mit Membern. Zuerst musst du wissen, von was für einem Typ patch_ ist und dann schaust du in der entsprechenden Doku nach, was das Objekt für öffentliche Member anbietet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763929</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 20 Aug 2009 08:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 08:52:13 GMT]]></title><description><![CDATA[<p>Hi drakon, erstmal danke für die schnelle Antwort. <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 geht hier anscheinend um templates, habe damit aber bis jetzt noch nie gearbeitet. Das Template sieht folgendermaßen aus:</p>
<pre><code class="language-cpp">template
&lt;
    template&lt;class&gt; class PatchField,
    class Mesh,
    class PointPatch,
    template&lt;class&gt; class MatrixType,
    class Type
&gt;
const objectRegistry&amp;
PointPatchField&lt;PatchField, Mesh, PointPatch, MatrixType, Type&gt;::db() const
{
    return patch_.boundaryMesh().mesh()();
}
</code></pre>
<p>Ich kann damit irgendwie nicht viel anfangen. Kann man hier sehen von welchem Typ patch_ ist ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763930</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 08:52:13 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 08:55:34 GMT]]></title><description><![CDATA[<p>Das ist ja lediglich eine Funktionstemplate des Klassentemplates <code>PointPatchField</code> . Schau dort nach. Oder schau dir die Rückgabewerte der Funktionen an, die du aufrufst.</p>
<p>Allerdings sollte solche Sachen in der Dokumentation zur Library stehen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763934</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 20 Aug 2009 08:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 09:07:46 GMT]]></title><description><![CDATA[<p>Enno schrieb:</p>
<blockquote>
<p>Kann man hier sehen von welchem Typ patch_ ist ?</p>
</blockquote>
<p>Nein, kann man nicht sehen. patch_ scheint ein Element der Klasse PointPatchField&lt;PatchField, Mesh, PointPatch, MatrixType, Type&gt; zu sein.</p>
<p>Wenn das aus einer Bibliothek kommt, die Du nur nutzen willst, musst Du diese Internas nicht verstehen. Dazu sollte es eine Dokumentation geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1763946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1763946</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Thu, 20 Aug 2009 09:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 13:45:59 GMT]]></title><description><![CDATA[<p>Ok,</p>
<p>darf man in templates einfach auf externe Klassen zugreifen oder wird der Compiler damit ein Problem haben ?</p>
<p>Will nämlich eine ermittelte Zahl aus einer Klasse einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764178</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 13:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 14:14:49 GMT]]></title><description><![CDATA[<p>Wie meinst du das? - Du darfst natürlich einen Klasse includen und dann Objekte erzeugen und die öffentliche Schnittstelle benutzen.. Aber ich vermute, dass du etwas anderes meinst. Mach mal ein Beispielprogramm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764197</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 20 Aug 2009 14:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 14:35:35 GMT]]></title><description><![CDATA[<p>Ok, hier mal der Originalcode des Templateabschnittes um das es geht. Wenn weitere Infos gewünscht sind, bitte sagen <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 class="language-cpp">#include &quot;polyMesh.H&quot;
#include &quot;polyBoundaryMesh.H&quot;

//Diese Dateien wurden neu included und werden auch gefunden

// Return field created from appropriate internal field values
// given the internal field
template
&lt;
    template&lt;class&gt; class PatchField,
    class Mesh,
    class PointPatch,
    template&lt;class&gt; class MatrixType,
    class Type
&gt;
template&lt;class Type1&gt;
tmp&lt;Field&lt;Type1&gt; &gt;
PointPatchField&lt;PatchField, Mesh, PointPatch, MatrixType, Type&gt;::
patchInternalField
(
    const Field&lt;Type1&gt;&amp; iF
) const
{
    // Check size
    if (iF.size() != internalField().size())
    {
        FatalErrorIn
        (
            &quot;tmp&lt;Field&lt;Type1&gt; &gt; PointPatchField&lt;PatchField, PointPatch, &quot;
            &quot;Type&gt;::&quot;
            &quot;patchInternalField(const Field&lt;Type1&gt;&amp; iF) const&quot;
        )   &lt;&lt; &quot;given internal field does not correspond to the mesh. &quot;
            &lt;&lt; &quot;Field size: &quot; &lt;&lt; iF.size()
            &lt;&lt; &quot; mesh size: &quot; &lt;&lt; internalField().size()
            &lt;&lt; abort(FatalError);
    }

    // get addressing

    //const polyBoundaryMesh&amp; meshPoints = patch_.boundaryMesh();

    const labelList&amp; meshPoints = patch().meshPoints();

//    tmp&lt;Field&lt;Type1&gt; &gt; tvalues(new Field&lt;Type1&gt;(meshPoints[2].nPoints()));
    tmp&lt;Field&lt;Type1&gt; &gt; tvalues(new Field&lt;Type1&gt;(meshPoints.size()));
    Field&lt;Type1&gt;&amp; values = tvalues();
//  for (label pointI = 0; pointI &lt; meshPoints[2].nPoints(); pointI++)
    for (label pointI = 0; pointI &lt; meshPoints.size(); pointI++)
    {
	Info &lt;&lt; &quot;pointI = &quot;&lt;&lt; pointI &lt;&lt; endl;
	Info &lt;&lt; &quot;meshPoints.size() =&quot; &lt;&lt; meshPoints.size() &lt;&lt; endl;
	Info &lt;&lt; &quot;iF.size() =&quot; &lt;&lt; iF.size() &lt;&lt; endl;

	values[pointI] = iF[meshPoints[pointI&rsqb;&rsqb;;
        //values[pointI] = iF[meshPoints[2][pointI&rsqb;&rsqb;;
	Info &lt;&lt; &quot;Sucessfully values SET&quot; &lt;&lt; endl;
    }
    return tvalues;
}
</code></pre>
<p>Ich will das am liebsten so haben wie in den auskommentierten Zeilen (denke ersichtlich wo)</p>
<p>Die Sache ist, dass meshPoint.size() den alten Wert einliest, also von einer nicht aktuellen Liste. Ich weiß aber (schon geprüft), dass in der Klasse &quot;boundaryMesh&quot; er den aktuellen Wert hat</p>
<pre><code>meshPoints = patch_.boundaryMesh();
</code></pre>
<p>Mit dem patch_ bin ich mir halt nicht sicher. <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>
<p>In der eigentlich Klasse von polyMesh kann ich das einfach folgendermaßen eingeben und es funktioniert:</p>
<pre><code class="language-cpp">const polyBoundaryMesh&amp; patches = boundaryMesh();
</code></pre>
<p>Habe jetzt halt nicht so den Plan wie man aus dem Template nun drauf zugreift. Ich drücke mich vielleicht dumm aus, weiß aber nicht wie ich es erklären soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764206</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 14:35:35 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 14:44:22 GMT]]></title><description><![CDATA[<p>Die Fehlermledung meldet der Compiler dann:</p>
<p>Fehler: ungültige Initialisierung einer Referenz des Typs »const Foam::polyBoundaryMesh&amp;« von Ausdruck des Typs »const Foam::pointBoundaryMesh</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764211</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 14:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 14:55:25 GMT]]></title><description><![CDATA[<p>Und wenn ich es direk so reinschreibe:</p>
<p>const polyBoundaryMesh&amp; patches = boundaryMesh();</p>
<p>Ich will einfach, dass diese Zuweisung klappt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Meckert er:</p>
<p>Fehler: es gibt keine Argumente für »boundaryMesh«, die von einem Templateparameter abhängen, weshalb eine Deklaration von »boundaryMesh« verfügbar sein muss<br />
lnInclude/PointPatchField.C:190: Fehler: (mit »-fpermissive« wird G++ den Code akzeptieren, aber die Verwendung eines nicht deklarierten Namens ist veraltet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764214</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 14:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfragen on Thu, 20 Aug 2009 15:23:15 GMT]]></title><description><![CDATA[<p>BoundaryMesh.H</p>
<p>namespace Foam<br />
{</p>
<p>// Forward declaration of classes<br />
class Time;<br />
class polyMesh;<br />
class primitiveMesh;</p>
<p>/<em>---------------------------------------------------------------------------</em>\<br />
Class boundaryMesh Declaration<br />
\<em>---------------------------------------------------------------------------</em>/</p>
<p>class boundaryMesh<br />
{<br />
....<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764236</guid><dc:creator><![CDATA[Enno]]></dc:creator><pubDate>Thu, 20 Aug 2009 15:23:15 GMT</pubDate></item></channel></rss>