<?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[c++ Anfänger]]></title><description><![CDATA[<p>Hi ich hab hier im folgenden Code-Abschnitt einen Fehler beim compilieren, jedoch verstehe ich nicht woran es liegt. Oder liegt es daran, dass die Fkt. str() nicht bekannt ist?</p>
<p>Code:</p>
<pre><code class="language-cpp">class Value : public Node {
  double value;
public:

  stringc toString() { return(str(value)); 
};
</code></pre>
<p>Compiler Fehler:</p>
<pre><code class="language-cpp">error: 'str' was not declared in this scope
</code></pre>
<p>die Fkt str() ist in einer Header Datei definiert:</p>
<pre><code class="language-cpp">class stringc {		
  char *s;
  int   l;
  char *sep;
  char *tk;
  int   tp;
public:
  friend stringc str(const double v);
</code></pre>
<p>und sowie im Quellcode:</p>
<pre><code class="language-cpp">stringc str(const double v)
{
  char sx[80];

  sprintf(sx, &quot;%g&quot;, v);

  return (stringc)sx;
}
</code></pre>
<p>Woran könnte es liegen, dass ich diesen Compiler error kriege?<br />
Kann mir jmd. bitte helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214973/c-anfänger</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 00:21:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214973.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jun 2008 08:29:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:29:49 GMT]]></title><description><![CDATA[<p>Hi ich hab hier im folgenden Code-Abschnitt einen Fehler beim compilieren, jedoch verstehe ich nicht woran es liegt. Oder liegt es daran, dass die Fkt. str() nicht bekannt ist?</p>
<p>Code:</p>
<pre><code class="language-cpp">class Value : public Node {
  double value;
public:

  stringc toString() { return(str(value)); 
};
</code></pre>
<p>Compiler Fehler:</p>
<pre><code class="language-cpp">error: 'str' was not declared in this scope
</code></pre>
<p>die Fkt str() ist in einer Header Datei definiert:</p>
<pre><code class="language-cpp">class stringc {		
  char *s;
  int   l;
  char *sep;
  char *tk;
  int   tp;
public:
  friend stringc str(const double v);
</code></pre>
<p>und sowie im Quellcode:</p>
<pre><code class="language-cpp">stringc str(const double v)
{
  char sx[80];

  sprintf(sx, &quot;%g&quot;, v);

  return (stringc)sx;
}
</code></pre>
<p>Woran könnte es liegen, dass ich diesen Compiler error kriege?<br />
Kann mir jmd. bitte helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522988</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:40:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>und ist sicher gestellt, das die Funktion <em>str</em> hier:</p>
<pre><code class="language-cpp">stringc toString() { return(str(value));
</code></pre>
<p>schon bekannt ist (ist ja eine andere Klasse, vielleicht sogar Datei), d.h. vor diesem Punkt deklariert wurde?</p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1522992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522992</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:40:22 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:41:20 GMT]]></title><description><![CDATA[<p>Die Funktion ist in der Headerdatei nicht definiert. Sie ist dort nicht einmal deklariert. Eine friend-Angabe ist nicht automatisch eine Deklaration.<br />
Du musst die Funktion noch einmal vor der Klasse deklarieren.</p>
<p>Achja: Header ist auch eingebunden? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1522994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1522994</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:48:30 GMT]]></title><description><![CDATA[<p>bladeexx schrieb:</p>
<blockquote>
<p>...liegt es daran, dass die Fkt. str() nicht bekannt ist?</p>
</blockquote>
<p>=&gt;</p>
<p>bladeexx schrieb:</p>
<blockquote>
<p>...<br />
Compiler Fehler:</p>
<pre><code class="language-cpp">error: 'str' was not declared in this scope
</code></pre>
</blockquote>
<p>Also: Jupp.<br />
Der Compiler &quot;liest&quot; Deinen Quellcode genauso, wie Du es tust: Von links nach rechts und von oben nach unten. Und die auftauchenden Zeichenfolgen muss er &quot;irgendwie einsortieren&quot; können ... und das geht eben mit &quot;str&quot; nicht.<br />
Wie der Lord schon gesagt hat: Der Compiler muss zumindestens an einem &quot;Funktionsprototypen&quot; (Funktionsdeklaration ohne Körper) &quot;vorbeigekommen sein&quot; (z.B. in einem Header).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523006</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:48:30 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:49:17 GMT]]></title><description><![CDATA[<p>Das verstehe ich nicht, ist es nicht so, dass man die Fkt im Header nur deklariert, und im Quellcode für den Header die Fkt. dann beschreibt?</p>
<p>PS: ja Header ist eingebunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523008</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:51:37 GMT]]></title><description><![CDATA[<p>Aber so wie ich es sehe ist doch die Fkt. str() in einem Header deklariert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523009</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 08:58:00 GMT]]></title><description><![CDATA[<p>Schreib doch bitte mal dazu in welchen Dateien die gezeigten Code-Teile sind und wann du welche Header wo einbindest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523016</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 05 Jun 2008 08:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:00:36 GMT]]></title><description><![CDATA[<p>Eine friend-Deklaration (allein) bewirkt nicht, dass der deklarierte Name im umschließenden Namensraum bei unqualifiziertem Namelookup sichtbar wird. Dazu bedarf es einer zusätzlichen Deklaration in diesem Namensraum. Eine Funktion, die nur per friend deklariert wurde, kann zwar - trotz der fehlenden Sichtbarkeit im Namensraum - per ADNL gefunden werden, aber ein double hat keinen assoziierten Namensraum, der durchsucht werden könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523021</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:00:36 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:09:16 GMT]]></title><description><![CDATA[<p>**funktion.h:<br />
**<br />
Code:</p>
<pre><code class="language-cpp">class Value : public Node {
  double value;
public:

  stringc toString() { return(str(value)); 
};
</code></pre>
<p>die Fkt str() ist in einer Header Datei <strong>string.h</strong> definiert:</p>
<pre><code class="language-cpp">class stringc {		
  char *s;
  int   l;
  char *sep;
  char *tk;
  int   tp;
public:
  friend stringc str(const double v);
</code></pre>
<p>und sowie im Quellcode <strong>string.cpp</strong>:</p>
<pre><code class="language-cpp">stringc str(const double v)
{
  char sx[80];

  sprintf(sx, &quot;%g&quot;, v);

  return (stringc)sx;
}
</code></pre>
<p>PS: So wie ich es aus dem Buch entnehmen kann, muss man doch im Header nur den Grundgerüst der Fkt. beschreiben, und die Fkt. selbst kann man doch wo anders definieren oder? und mit friend anweisung sagt man dass die Fkt auf private Eigenschaften der Klasse zugriff hat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523026</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:09:16 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:12:25 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Eine friend-Deklaration (allein) bewirkt nicht, dass der deklarierte Name im umschließenden Namensraum bei unqualifiziertem Namelookup sichtbar wird. Dazu bedarf es einer zusätzlichen Deklaration in diesem Namensraum. Eine Funktion, die nur per friend deklariert wurde, kann zwar - trotz der fehlenden Sichtbarkeit im Namensraum - per ADNL gefunden werden, aber ein double hat keinen assoziierten Namensraum, der durchsucht werden könnte.</p>
</blockquote>
<p>Das Heisst ich muss die Fkt str() noch mal in der Header Datei string.h deklarieren? Also nur den Grundgerüst? oder kann man irgendwie anders noch auf die Fkt. verweisen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523035</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:12:31 GMT]]></title><description><![CDATA[<p>Liest Du unsere Beiträge?</p>
<p>Ursache:</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Die Funktion ist in der Headerdatei nicht definiert. Sie ist dort nicht einmal deklariert. Eine friend-Angabe ist nicht automatisch eine Deklaration.</p>
</blockquote>
<p>Lösung:</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Du musst die Funktion noch einmal vor der Klasse deklarieren.</p>
</blockquote>
<p>Detaillierte Ausführung: siehe camper.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523036</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:21:48 GMT]]></title><description><![CDATA[<p>Ja ich lese die Beiträge.</p>
<p>Eine andere Frage, wenn ich die Fkt. vor der Klasse definiere, dann brauche ich doch gar nicht mehr die friend deklaration oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523055</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:25:47 GMT]]></title><description><![CDATA[<p>Das Schlüsselwort <code>friend</code> brauchst du sowieso nur, wenn du von aussen auf ein <code>protected-</code> oder <code>private</code> -Member zugreifen willst, und nicht, um eine Funktion zu deklarieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523058</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:25:47 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:26:40 GMT]]></title><description><![CDATA[<p>bladeexx schrieb:</p>
<blockquote>
<p>Ja ich lese die Beiträge.</p>
<p>Eine andere Frage, wenn ich die Fkt. vor der Klasse definiere, dann brauche ich doch gar nicht mehr die friend deklaration oder?</p>
</blockquote>
<p>&quot;Non-friends&quot; dürfen allerdings nicht auf non-public-Member zugreifen....<br />
EDIT: Mal wieder zu spät <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/1523060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523060</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:26:32 GMT]]></title><description><![CDATA[<p>Nur, dass das eine mit dem anderen nichts zu tun hat. Die Deklaration vor der Klasse macht die Funktion gewissermaßen überhaupt erst bekannt, die friend-Deklaration erlaubt der Funktion Zugriff auf private Mitglieder von stringc. Wenn Du das nicht brauchst, kannst Du die friend-Deklaration natürlich weglassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523062</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:26:32 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:31:20 GMT]]></title><description><![CDATA[<p>Ah, ok ich danke euch vielmals!!!! <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>
<p>mal eine ganz blöde Frage. Kann ich die Fkt. str() ohne den friend operator in der Klasse deklarieren, oder ist es dann keine Daklaration?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523070</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:31:20 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:33:38 GMT]]></title><description><![CDATA[<p>Klar kannst du das, nur ist deine Funktion dann eine Memberfunktion der Klasse und keine freie Funktion mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523075</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:33:38 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:35:50 GMT]]></title><description><![CDATA[<p>bladeexx schrieb:</p>
<blockquote>
<p>mal eine ganz blöde Frage. Kann ich die Fkt. str() ohne den friend operator in der Klasse deklarieren, oder ist es dann keine Daklaration?</p>
</blockquote>
<p>Allmählich bezweifle ich auch, dass du die Beiträge liest... <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>
<p>Nochmals: Mit <code>friend</code> deklariert man keine Funktionen, sondern erlaubt den Zugriff von aussen! Das steht übrigens bereits in meinem letzten Post.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523079</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:35:50 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:42:12 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Klar kannst du das, nur ist deine Funktion dann eine Memberfunktion der Klasse und keine freie Funktion mehr.</p>
</blockquote>
<p>D.h. in meinem Fall könnte ich auch der Klasse Value noch die Klasse Stringc vererben und den friend opeator wegnehme dann müsste auch gehen oder? Oder bringe ich da jetzt was durcheinander?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523086</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:42:12 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:41:04 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Allmählich bezweifle ich auch, dass du die Beiträge liest... <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>
</blockquote>
<p>Doch ich lese das alles, nur es ist viel neues für mich und ich will und versuche es zu verstehen, sry dass es bei mir nicht sofort ankommt und ich vieles nachfragen muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523092</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:41:04 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 09:54:14 GMT]]></title><description><![CDATA[<p>Sry dass ich euch damit nerve, aber eine Frage, mir wurde gesagt, dass der Code früher mit Solaris System Compiliert wurde und es lief. Kann es sein dass sich Kompiler so geändert haben, oder liegt hier ein allgemeiner c++ Fehler vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523105</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 09:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 10:06:15 GMT]]></title><description><![CDATA[<p>bladeexx schrieb:</p>
<blockquote>
<p>Sry dass ich euch damit nerve, aber eine Frage, mir wurde gesagt, dass der Code früher mit Solaris System Compiliert wurde und es lief. Kann es sein dass sich Kompiler so geändert haben, oder liegt hier ein allgemeiner c++ Fehler vor?</p>
</blockquote>
<p>In Prä-Standard C++ wurden Namen aus friend-Deklarationen unmittelbar im umliegenden Namensraum sichtbar - insofern hat sich hier die Sprache verändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523118</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 05 Jun 2008 10:06:15 GMT</pubDate></item><item><title><![CDATA[Reply to c++ Anfänger on Thu, 05 Jun 2008 10:09:16 GMT]]></title><description><![CDATA[<p>Ok.</p>
<p>Danke euch allen nochmals</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1523122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1523122</guid><dc:creator><![CDATA[bladeexx]]></dc:creator><pubDate>Thu, 05 Jun 2008 10:09:16 GMT</pubDate></item></channel></rss>