<?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[Vektoren in Klassen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade ein kleines Programm zu schreiben welches Vektoren in einer Klasse definiert. Leider bekomme ich immer einen Segmentation fault.<br />
Ich habe noch sehr wenig Erfahrung beim Umgang mit Klassen und hoffe der angehängte Code ist annähernd verständlich...</p>
<pre><code class="language-cpp">#include&lt;cmath&gt;
#include&lt;vector&gt;
#include&lt;fstream&gt;
#include&lt;iostream&gt;

using namespace std;

// KLASSE
class vektor {

private:
	vector&lt;double&gt; t1;

public:
	vector&lt;double&gt; e1;

	vector&lt; vector&lt;double&gt; &gt; ausgabe(void);
	void init(void);
};

// MEMBER FUNKTONEN
void vektor::init(void) {

	for (int i = 0; i &lt; 2; i++) {
		t1.push_back (e1[i]);
	}
}
vector &lt; vector &lt;double&gt; &gt; vektor::ausgabe(void) {

	vector&lt; vector&lt;double&gt; &gt;  ausg(2, vector&lt;double&gt;(2));

	for (int p = 0; p &lt; 2; p++) {
		for (int i = 0; i &lt; 2; i++) {
			if (p == 0) ausg[p][i] = t1[i]+1.0;
			else ausg[p][i] = e1[i]+1.0;
		}
	}

	return ausg;
}
////////////////////////////

int main(void) {

	vector&lt; vector&lt;double&gt; &gt; a(2, vector&lt;double&gt;(2));

	vektor test;

	// test.init();

	test.e1[0] = 1.0;
	test.e1[1] = 2.0;

	a = test.ausgabe();

	for (int p = 0; p &lt; 2; p++) {
		for (int i = 0; i &lt; 2; i++) {
			cout &lt;&lt; a[p][i] &lt;&lt; &quot; &quot;; 
		}
		cout &lt;&lt; endl;

	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/279642/vektoren-in-klassen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 10:09:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279642.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Dec 2010 08:15:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektoren in Klassen on Fri, 31 Dec 2010 08:15:41 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade ein kleines Programm zu schreiben welches Vektoren in einer Klasse definiert. Leider bekomme ich immer einen Segmentation fault.<br />
Ich habe noch sehr wenig Erfahrung beim Umgang mit Klassen und hoffe der angehängte Code ist annähernd verständlich...</p>
<pre><code class="language-cpp">#include&lt;cmath&gt;
#include&lt;vector&gt;
#include&lt;fstream&gt;
#include&lt;iostream&gt;

using namespace std;

// KLASSE
class vektor {

private:
	vector&lt;double&gt; t1;

public:
	vector&lt;double&gt; e1;

	vector&lt; vector&lt;double&gt; &gt; ausgabe(void);
	void init(void);
};

// MEMBER FUNKTONEN
void vektor::init(void) {

	for (int i = 0; i &lt; 2; i++) {
		t1.push_back (e1[i]);
	}
}
vector &lt; vector &lt;double&gt; &gt; vektor::ausgabe(void) {

	vector&lt; vector&lt;double&gt; &gt;  ausg(2, vector&lt;double&gt;(2));

	for (int p = 0; p &lt; 2; p++) {
		for (int i = 0; i &lt; 2; i++) {
			if (p == 0) ausg[p][i] = t1[i]+1.0;
			else ausg[p][i] = e1[i]+1.0;
		}
	}

	return ausg;
}
////////////////////////////

int main(void) {

	vector&lt; vector&lt;double&gt; &gt; a(2, vector&lt;double&gt;(2));

	vektor test;

	// test.init();

	test.e1[0] = 1.0;
	test.e1[1] = 2.0;

	a = test.ausgabe();

	for (int p = 0; p &lt; 2; p++) {
		for (int i = 0; i &lt; 2; i++) {
			cout &lt;&lt; a[p][i] &lt;&lt; &quot; &quot;; 
		}
		cout &lt;&lt; endl;

	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2000635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2000635</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Fri, 31 Dec 2010 08:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren in Klassen on Fri, 31 Dec 2010 09:30:47 GMT]]></title><description><![CDATA[<p>Der einzige vector der irgendeinen Inhalt hat ist a. Bei all den anderen wird fröhlich auf nicht-vorhandene Elemente zugegriffen, denn sie sind alle leer.</p>
<p>Beim Umgang mit vectoren solltest du auch die Vectormethoden wie size() benutzen. Alle Grenzen sind bei dir im Programm fest einprogrammiert. Es ist ja gerade der Vorteil von vector, dass die Grenzen nicht fest sein brauchen.</p>
<p>Wenn du dich etwas sicherer fühlst, besser noch iteratoren statt Zählvariablen benutzen.</p>
<p>Wenn ich eine Memberfunktion namens init() sehe, schrillen alle Alarmglocken. Guck dir mal an, was ein Konstruktor ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2000652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2000652</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 31 Dec 2010 09:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren in Klassen on Sat, 01 Jan 2011 20:59:18 GMT]]></title><description><![CDATA[<p>Außerdem solltest du im Normalfall<br />
1. &quot;sprechende Namen&quot; für Variablen verwenden<br />
2. Variablen alle private oder protected machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001141</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 01 Jan 2011 20:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren in Klassen on Sat, 01 Jan 2011 21:22:45 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<p>Variablen alle private oder protected machen.</p>
</blockquote>
<ol start="0">
<li><code>protected</code> ist genauso schlimm wie <code>public</code> .<br />
1. Erkläre mal, wieso <code>std::pair</code> sein <code>first</code> und <code>second</code> als öffentlichen Member hat.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2001150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001150</guid><dc:creator><![CDATA[einspruch]]></dc:creator><pubDate>Sat, 01 Jan 2011 21:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren in Klassen on Sat, 01 Jan 2011 21:31:55 GMT]]></title><description><![CDATA[<p>einspruch schrieb:</p>
<blockquote>
<p>wxSkip schrieb:</p>
<blockquote>
<p>Variablen alle private oder protected machen.</p>
</blockquote>
<ol start="0">
<li><code>protected</code> ist genauso schlimm wie <code>public</code> .<br />
1. Erkläre mal, wieso <code>std::pair</code> sein <code>first</code> und <code>second</code> als öffentlichen Member hat.</li>
</ol>
</blockquote>
<p>0. Warum?<br />
1. Ich sagte &quot;Im Normalfall&quot;. Ich mache auch manchmal Variablen public. In dem Fall ist das durchaus akzeptabel, ich würde die init()-Funktion backup() oder update() nennen, aber ich kenne den Sinn des vektors nicht (übrigens hier auch kein sprechender Name).</p>
<p>Wenn der Sinn ungefähr so ist, wie ich ihn erahne, könnte man z.B. e1 auch private machen und dann operator[] überladen, damit man nicht test.e1[1] sondern test[1] schreiben kann. Bei dieser Überladung könnte man dann auch Bound-Checking und eventuelle Größenänderung einbauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001151</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sat, 01 Jan 2011 21:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren in Klassen on Mon, 03 Jan 2011 12:36:13 GMT]]></title><description><![CDATA[<p>Vielen Dank einmal für die Denkanstöße! Vor allem das mit dem Konstruktor war mir eine große Hilfe. Ich habe bereits gemerkt, dass ich im Umgang mit Klassen noch einiges nachzuschlagen habe... <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>aber ich kenne den Sinn des vektors nicht</p>
</blockquote>
<p>Dieser Code dient eigentlich nur zum Test ob ich das was ich über Objekt orientiertes programmieren gelesen habe auch schon verstanden habe. Anwendung soll es dann finden in einem meiner Programme (in C) welches ein elliptisches, eingeschränktes 3 Körperproblem löst. Die Eingabe der Daten erfolgt in Verschiedenen Koordinatensystemen und deshalb auch der Versuch diese Koordinatensysteme in Klassen zusammenzufassen. Kurzum nach einigen Versuchen und eurer Hilfe funktioniert der Code jetzt, allerdings bin ich nun bei der Aufspaltung in verschiedene Dateien auf das nächste Problem gestoßen: Der Compiler meldet dass die Dateien nicht gefunden werden können, oder nach Zusatz von</p>
<pre><code class="language-cpp">#ifndef
</code></pre>
<p>mittlerweile nur noch einen <code>buid error</code></p>
<p>Klassendefinition befindet sich in <code>BCO.h</code><br />
Die Memberfunktionen in <code>BCO.cpp</code><br />
<code>BCO.h</code> wurde in <code>BCO.cpp</code> mit <code>#include &quot;BCO.h&quot;</code> eingebunden<br />
und <code>BCO.cpp</code> in <code>main.cpp</code> mit <code>#include &quot;BCO.cpp&quot;</code></p>
<p>Ich habe bereis einige Beiträge dazu im Internet durchforstet aber leider noch nicht wirklich eine Anleitung (für Dummies) gefunden, wie man diese Dateien in der Entwicklungsumgebung XCode zu einem Objekt zusammenfügt.</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001658</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Mon, 03 Jan 2011 12:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Vektoren in Klassen on Mon, 03 Jan 2011 12:42:19 GMT]]></title><description><![CDATA[<p>Generell solltest du nicht cpp-Dateien in andere includen, außer du hast einen trifftigen Grund. Falls du mehr über Header und Sourcen wissen willst, habe ich mal einen ausführlichen Beitrag dazu geschrieben:<br />
<a href="http://www.c-plusplus.net/forum/p1993089#1993089" rel="nofollow">http://www.c-plusplus.net/forum/p1993089#1993089</a><br />
Wie man seine Dateien in XCode verwaltet, weiß ich aber nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001667</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Mon, 03 Jan 2011 12:42:19 GMT</pubDate></item></channel></rss>