<?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[Anfängerfragen]]></title><description><![CDATA[<p>Hallo,<br />
ich hab bis jetzt eigentlich nur php, javascript und html gecodet. Naja und (lacht mich nicht aus) Blitzbasic :D. Vor Zeiten habe ich mal ein Buch über C++ gelesen, aber das hat nur an der Obefläche von allem gekratzt (OOP nur das nötigste und sonst halt alles was mach braucht um in der Windows Konsole sein Alter aus dem Geburtsdatum zu berechnen). Bei 2 weiteren Büchern habe ich bei der Hälfte gar nicht erst weitergelesen. MFC - Nein Danke! (Ubuntu lässt grüßen!) Dann war erstmal lange Zeit Pause angesagt, bis ich vor einer Wochen einen C++ Kurs im I-net endeckt habe -&gt; Und zu Einzelheiten aus dem Kurs hab ich jetzt viele billige Fragen, die bestimmt jeder hier beantworten kann.</p>
<p><strong>Zusammenfassung für Lesefaule:</strong><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> will C++ Lernen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> nutze Ubuntu<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Vorraussetzungen: php, javascript, html und *hüstel* Blitzbasic<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> favorisierter Kurs <a href="http://www.cpp-tutor.de/" rel="nofollow">http://www.cpp-tutor.de/</a><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> hab viele dumme Fragen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> wenn ihr nichts dagegen habt, wird dies mein Sammelthread dafür</p>
<p>Soviel zu EInführung, hier meine erste Frage:</p>
<p>in Bezug auf</p>
<pre><code class="language-cpp">CAny ncObject1, CRes;
const CAny cObject2;

CRes = ncObject1 + ncObject1;
CRes = ncObject1 + cObject2;
CRes = cObject2 + ncObject1;
CRes = cObject2 + cObject2;
</code></pre>
<p>wurde diese Klasse geschrieben:</p>
<pre><code class="language-cpp">//Original von cpp-tutor
class Complex
{
    double real;   // Realanteil
    double imag;   // Imaginäranteil
  public:
    ....
    Complex operator + (Complex&amp; op2);
    Complex operator + (const Complex op2);
    Complex&amp; operator + (Complex&amp; op2) const;
    Complex&amp; operator + (const Complex op2) const;
};
</code></pre>
<p>Das versteh ich eigentlich ganz gut, bis darauf was das &amp; vor &quot;operator +&quot; bei der 3. und 4. Operatorenüberladung da zu suchen hat und was es bewirkt!?</p>
<p>So, und dann nochwas, was mich brennend interesiert:<br />
Ich habe grade in einem Thread gelesen, dass man mit C++ auch theoretisch ein OS gecodet werden könnte (btw: wurde UNIX/Linux nicht mit C/C++ programmiert oder ist das ein Mythos?). Wie würde man solche binären Programme schreiben und welchen Compiler müsste man benutzen, dass man dann ja theoretisch Boot-fähige Programme hat?</p>
<p>lg Julian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181578/anfängerfragen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:10:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181578.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 May 2007 10:18:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängerfragen on Tue, 15 May 2007 10:18:02 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich hab bis jetzt eigentlich nur php, javascript und html gecodet. Naja und (lacht mich nicht aus) Blitzbasic :D. Vor Zeiten habe ich mal ein Buch über C++ gelesen, aber das hat nur an der Obefläche von allem gekratzt (OOP nur das nötigste und sonst halt alles was mach braucht um in der Windows Konsole sein Alter aus dem Geburtsdatum zu berechnen). Bei 2 weiteren Büchern habe ich bei der Hälfte gar nicht erst weitergelesen. MFC - Nein Danke! (Ubuntu lässt grüßen!) Dann war erstmal lange Zeit Pause angesagt, bis ich vor einer Wochen einen C++ Kurs im I-net endeckt habe -&gt; Und zu Einzelheiten aus dem Kurs hab ich jetzt viele billige Fragen, die bestimmt jeder hier beantworten kann.</p>
<p><strong>Zusammenfassung für Lesefaule:</strong><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> will C++ Lernen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> nutze Ubuntu<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Vorraussetzungen: php, javascript, html und *hüstel* Blitzbasic<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> favorisierter Kurs <a href="http://www.cpp-tutor.de/" rel="nofollow">http://www.cpp-tutor.de/</a><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> hab viele dumme Fragen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> wenn ihr nichts dagegen habt, wird dies mein Sammelthread dafür</p>
<p>Soviel zu EInführung, hier meine erste Frage:</p>
<p>in Bezug auf</p>
<pre><code class="language-cpp">CAny ncObject1, CRes;
const CAny cObject2;

CRes = ncObject1 + ncObject1;
CRes = ncObject1 + cObject2;
CRes = cObject2 + ncObject1;
CRes = cObject2 + cObject2;
</code></pre>
<p>wurde diese Klasse geschrieben:</p>
<pre><code class="language-cpp">//Original von cpp-tutor
class Complex
{
    double real;   // Realanteil
    double imag;   // Imaginäranteil
  public:
    ....
    Complex operator + (Complex&amp; op2);
    Complex operator + (const Complex op2);
    Complex&amp; operator + (Complex&amp; op2) const;
    Complex&amp; operator + (const Complex op2) const;
};
</code></pre>
<p>Das versteh ich eigentlich ganz gut, bis darauf was das &amp; vor &quot;operator +&quot; bei der 3. und 4. Operatorenüberladung da zu suchen hat und was es bewirkt!?</p>
<p>So, und dann nochwas, was mich brennend interesiert:<br />
Ich habe grade in einem Thread gelesen, dass man mit C++ auch theoretisch ein OS gecodet werden könnte (btw: wurde UNIX/Linux nicht mit C/C++ programmiert oder ist das ein Mythos?). Wie würde man solche binären Programme schreiben und welchen Compiler müsste man benutzen, dass man dann ja theoretisch Boot-fähige Programme hat?</p>
<p>lg Julian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285253</guid><dc:creator><![CDATA[jejay]]></dc:creator><pubDate>Tue, 15 May 2007 10:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 15 May 2007 10:30:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>&quot;&amp;&quot; ist der Referenz-Operator. Damit sagst du dem Compiler, dass von dem Inhalt<br />
einer Variablen keine Kopie erzeugt werden, sondern dass er eine Referenz<br />
auf die Originalvariable halten soll.</p>
<p>Unix/Linux ist zum groessten Teil in C geschrieben. Aber eben nicht ganz. Wenn<br />
mich recht erinnere, waren es beim 2.4er Kernel ca. 8000 Zeilen Assembler Code<br />
und ca. 8Millionen Zeilen C-Code.</p>
<p>Ob man dafuer rein nur C nutzen kann, weiss ich nicht genau. Zumindest weiss<br />
ich, dass der GCC eine Option bereitstellt, mit der man entsprechende Binaries<br />
erzeugen kann.</p>
<p>gruss<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285261</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Tue, 15 May 2007 10:30:17 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 15 May 2007 10:58:41 GMT]]></title><description><![CDATA[<p>Okay Danke! Zwar komme ich damit zwar immernoch nicht ganz klar, aber bin der Sache schon näher <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>Ehm weitere Frage:<br />
Hab grad ein bisschen rumgetestet und da ist mir etwas eigenartiges aufgefallen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using std::cout;
using std::endl;

int var = 255;
int *pointer = &amp;var; //Version 1

int main()
{
	cout &lt;&lt; *pointer &lt;&lt; endl;
}
</code></pre>
<p><strong>Dieser Code wird verhlerfrei compiliert!</strong></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using std::cout;
using std::endl;

int var = 255;
int *pointer;

int main()
{
	pointer = &amp;var; //Version 2
	cout &lt;&lt; *pointer &lt;&lt; endl;
}
</code></pre>
<p><strong>Dieser auch!</strong></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using std::cout;
using std::endl;

int var = 255;
int *pointer;
pointer = &amp;var; //Version 3

int main()
{
	cout &lt;&lt; *pointer &lt;&lt; endl;
}
</code></pre>
<p><strong>Aber hier liefert g++ den Fehler:</strong><br />
expected constructor, destructor, or type conversion before &gt;&gt;<strong>=</strong>&lt;&lt; (man ne fette Tabelle mit Sonderzeichen aber keine franz. Gänsefüßchen dabei) token</p>
<p>Warum?</p>
<p>lg Julian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285283</guid><dc:creator><![CDATA[jejay]]></dc:creator><pubDate>Tue, 15 May 2007 10:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 15 May 2007 11:02:08 GMT]]></title><description><![CDATA[<p>Du kannst zwar global Variablen deklarieren und sie gleich initialisieren, aber keine Anweisungen ausführen.<br />
Die Zeile</p>
<pre><code class="language-cpp">pointer = &amp;var; //Version 3
</code></pre>
<p>in die Main packen und es sollte wieder kompiliert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285286</guid><dc:creator><![CDATA[~Airdamn]]></dc:creator><pubDate>Tue, 15 May 2007 11:02:08 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 15 May 2007 11:03:30 GMT]]></title><description><![CDATA[<p>Außerhalb einer Funktion dürfen nur Deklarationen und Definitionen stehen, aber keine Anweisungen - <code>int *pointer = &amp;var;</code> ist eine Definition (mit Initialisierung), <code>int* pointer; pointer = &amp;var;</code> ist eine Definition und eine anschließende Anweisung (Variablenzuweisung). Der Unterschied klingt zwar nur minimal, ist aber in C++ durchaus bedeutend (vor allem weil bei einer freistehenden Anweisung nicht festgelegt werden kann, wann sie aufgerufen werden soll).</p>
<p>Im Inneren einer Funktion wäre Variante 3 übrigens erlaubt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285287</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 15 May 2007 11:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Wed, 16 May 2007 08:43:31 GMT]]></title><description><![CDATA[<p>Achso, danke!</p>
<p>So die nächste Frage:<br />
Ich hab mal zum üben meine eigene string-Klasse geschrieben. Klappte auch bis zum Zuweisungsoperaor und der Memberfunktion für die Länge ganz gut, Probleme macht mir nur der &lt;&lt; Operator für die Klasse &quot;ostream&quot;.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using std::cout;
using std::endl;

class string
{
	char *inhalt;

	public:
	string&amp; operator = (const char *src);
	friend ostream&amp; operator &lt;&lt; (ostream&amp; os, string&amp; src);
	int getLen();
};

string&amp; string::operator = (const char *src)
{
	const char *pTemp;
	pTemp = src;

	int char_counter = 0;

	while(*pTemp != 0)
	{
		*pTemp++;
		char_counter++;
	}

	delete [] inhalt;
	inhalt = new char[char_counter+1];
	pTemp = src;

	for(int i = 0;i &lt;= char_counter;i++)
	{
		inhalt[i] = *pTemp++;
	}

	return *this;
}

ostream&amp; operator &lt;&lt; (ostream&amp; os, string&amp; src)
{
	os &lt;&lt; src.inhalt;
	return os;
}

int string::getLen()
{
	const char *pTemp;
	pTemp = inhalt;
	int char_counter = 0;

	while(*pTemp != 0)
	{
		*pTemp++;
		char_counter++;
	}
	return char_counter;
}

int main()
{
	string text;
	text = &quot;Dieser Text wurde abgelegt in einer String-Klasse, wie man sie niemals zuvor gesehen hat!&quot;;
	//cout &lt;&lt; text;
	cout &lt;&lt; endl;
	return 0;
}
</code></pre>
<p>Ausgabe:</p>
<p>jejay@ubuntu:~/cpp$ compile<br />
test.cpp:12: Fehler: ISO-C++ verbietet Deklaration von »ostream« ohne Typ<br />
test.cpp:12: Fehler: »ostream« ist weder eine Funktion noch Elementfunktion; kann nicht als »friend« deklariert werden<br />
test.cpp:12: Fehler: expected »;« before »&amp;« token<br />
test.cpp:41: Fehler: expected constructor, destructor, or type conversion before »&amp;« token</p>
<p>Allerdings habe ich mich streng an der Lektion &quot;Überladen spezieller Operatoren&quot; des C++ Tutorials auf cpp-tutor (<a href="http://www.cpp-tutor.de/cpp/le12/le12_05.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/le12/le12_05.htm</a>) orientiert <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>Vielen Dank<br />
lg Julian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285949</guid><dc:creator><![CDATA[jejay]]></dc:creator><pubDate>Wed, 16 May 2007 08:43:31 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Wed, 16 May 2007 08:49:19 GMT]]></title><description><![CDATA[<p>Du hast per 'using' ja auch nur die Namen 'std::cout' und 'std::endl' in den globalen Namensraum gezogen. Also entweder du setzt noch ein 'using std::ostream;' an den Anfang des Programms oder du gibst den vollen Namen in den Parameterlisten mit an.</p>
<p>(im Zweifelsfall hilft auch ein 'using namespace std;' - aber dann könnte es passieren, daß deine Klasse 'string' mit 'std::string' kollidiert)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285955</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 16 May 2007 08:49:19 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Wed, 16 May 2007 09:00:04 GMT]]></title><description><![CDATA[<p>Ups Peinlich daran hab ich nicht gedacht! Naja Anfängerfehler *g*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1285968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1285968</guid><dc:creator><![CDATA[jejay]]></dc:creator><pubDate>Wed, 16 May 2007 09:00:04 GMT</pubDate></item></channel></rss>