<?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[Klasse mit Member Klassen?]]></title><description><![CDATA[<p>Hallo!<br />
Folgendes:<br />
Ich habe folgende Klasse einer Person:</p>
<pre><code class="language-cpp">class Person{

    public:
	Person();
        Person(string vn,string nn, int geb);
        ~Person();

        string getVname();
        string getNname();
        int getGebdate();

        void setVname(string v);
        void setNname(string n);
        void setGebdate(int g);

    private:
        string vname;
        string nname;
        int gebdate;
};
</code></pre>
<p>Dann möcht ich noch die parents haben die aus 3 Personen besteht:</p>
<pre><code class="language-cpp">class Parents{
    public:
        Parents(Person s, Person v, Person m);
        ~Parents();

	Person getSohn();
	Person getVater(); 
	Person getMutter(); 

	void setSohn(Person S);
	void setVater(Person V); 
	void setMutter(Person M);

    private:
        Person sohn;
        Person vater;
        Person mutter;
};
</code></pre>
<p>Wenn ich dann in der Main folgendes teste, bekomm ich einen Fehler, wieso?<br />
Muss ich mit Pointern arbeiten oder wie funktioniert das?</p>
<pre><code class="language-cpp">int main() {
Person p(&quot;Hubert&quot;,&quot;Mueller&quot;,23);
Person p1(&quot;Sepp&quot;,&quot;Humanig&quot;,63);
Person p2(&quot;Sabine&quot;,&quot;Mueller&quot;,33);

Parents(p,p1,p2);

}
</code></pre>
<p>Fehler ist:</p>
<pre><code>/tmp/ccxgayKD.o: In function `main':
programm.cpp:(.text+0x421): undefined reference to `Parents::Parents(Person, Person, Person)'
programm.cpp:(.text+0x42f): undefined reference to `Parents::~Parents()'
collect2: ld returned 1 exit status
</code></pre>
<p>vielen Dank<br />
mfg<br />
1metal3</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170494/klasse-mit-member-klassen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 04:41:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170494.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Jan 2007 17:51:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Tue, 16 Jan 2007 17:51:08 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Folgendes:<br />
Ich habe folgende Klasse einer Person:</p>
<pre><code class="language-cpp">class Person{

    public:
	Person();
        Person(string vn,string nn, int geb);
        ~Person();

        string getVname();
        string getNname();
        int getGebdate();

        void setVname(string v);
        void setNname(string n);
        void setGebdate(int g);

    private:
        string vname;
        string nname;
        int gebdate;
};
</code></pre>
<p>Dann möcht ich noch die parents haben die aus 3 Personen besteht:</p>
<pre><code class="language-cpp">class Parents{
    public:
        Parents(Person s, Person v, Person m);
        ~Parents();

	Person getSohn();
	Person getVater(); 
	Person getMutter(); 

	void setSohn(Person S);
	void setVater(Person V); 
	void setMutter(Person M);

    private:
        Person sohn;
        Person vater;
        Person mutter;
};
</code></pre>
<p>Wenn ich dann in der Main folgendes teste, bekomm ich einen Fehler, wieso?<br />
Muss ich mit Pointern arbeiten oder wie funktioniert das?</p>
<pre><code class="language-cpp">int main() {
Person p(&quot;Hubert&quot;,&quot;Mueller&quot;,23);
Person p1(&quot;Sepp&quot;,&quot;Humanig&quot;,63);
Person p2(&quot;Sabine&quot;,&quot;Mueller&quot;,33);

Parents(p,p1,p2);

}
</code></pre>
<p>Fehler ist:</p>
<pre><code>/tmp/ccxgayKD.o: In function `main':
programm.cpp:(.text+0x421): undefined reference to `Parents::Parents(Person, Person, Person)'
programm.cpp:(.text+0x42f): undefined reference to `Parents::~Parents()'
collect2: ld returned 1 exit status
</code></pre>
<p>vielen Dank<br />
mfg<br />
1metal3</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210929</guid><dc:creator><![CDATA[1metal3]]></dc:creator><pubDate>Tue, 16 Jan 2007 17:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Tue, 16 Jan 2007 17:55:02 GMT]]></title><description><![CDATA[<p>Du musst das File wo Parents drin ist linken.<br />
Welche IDE benutzt du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210932</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Tue, 16 Jan 2007 17:55:02 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Tue, 16 Jan 2007 18:04:12 GMT]]></title><description><![CDATA[<p>Hast du Konstruktor und Destruktor von Parents auch definiert?<br />
Du kannst die Dsestruktoren in beiden Klassen auch weglassen. Hier reichen die per default erzeugten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210938</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 16 Jan 2007 18:04:12 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Tue, 16 Jan 2007 18:23:57 GMT]]></title><description><![CDATA[<p>in der main ist die parents.h und die person.h includet.</p>
<p>Was meinst du mit linken?<br />
Ich verwende gar keine Ide nur editor und shell.</p>
<p>Das ist aber egal glaub ich.</p>
<p>konstruktor und destruktor sind doch da:</p>
<pre><code class="language-cpp">Parents(Person s, Person v, Person m);
~Parents();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1210946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210946</guid><dc:creator><![CDATA[1metal3]]></dc:creator><pubDate>Tue, 16 Jan 2007 18:23:57 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Tue, 16 Jan 2007 18:36:41 GMT]]></title><description><![CDATA[<p>Nö, Du deklarierst sie nur. &quot;Da&quot; wären sie wenn irgendwas mit {} dabei (oder in einem externen File) steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210952</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 16 Jan 2007 18:36:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Tue, 16 Jan 2007 19:22:16 GMT]]></title><description><![CDATA[<p>Machs irgendwie so ... ist wohl mal wieder net getestet ...</p>
<pre><code class="language-cpp">class Person
{
public:
	Person(void) : m_nAge(0) { m_sFirstName = &quot;&quot;; m_sName = &quot;&quot;; }
	Person(const std::string&amp; sFirstName, const std::string&amp; sName, unsigned short nAge) : m_nAge(nAge) { m_sFirstName = sFirstName; m_sName = sName; }
	Person(const Person&amp; person) : m_nAge(person.get_age()) { m_sFirstName = person.get_first_name(); m_sName = person.get_name();
	~Person(void);

public:
	const std::string&amp; get_first_name(void)		{	return m_sFirstName;	}
	const std::string&amp; get_name(void)			{	return m_sName;			}
	unsigned short get_age(void)				{	return m_nAge;			}

public:
	void set_first_name(const std::string&amp; sFirstName)		{ m_sFirstName = sFirstName;	}
	void set_name(const std::string&amp; sName)					{ m_sName = sName;				}
	void set_age(unsigned short nAge)						{ m_nAge = nAge;				}

private:
	std::string		m_sFirstName;
	std::string		m_sName;
	unsigned short	m_nAge;
};

class Parents 
{
public:
	Parents(const Person&amp; personChild, const Person&amp; personFather, const Person&amp; personMother) : m_personChild(personChild), m_personFather(personFather), m_personMother(personMother) { }
	~Parents(void);

public:
	const Person&amp;	get_child(void)				{ return m_personChild;		}
	const Person&amp;	get_father(void)			{ return m_personFather;	}
	const Person&amp;	get_mother(void)			{ return m_personMother;	}

public:
	void set_child(const Person&amp; person)		{ m_personChild = person;	}
	void set_father(const Person&amp; person)		{ m_personFather = person;	}
	void set_mother(const Person&amp; person)		{ m_personMother = person;	}

private:
	Person	m_personChild;
	Person	m_personFather;
	Person	m_personMother;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1210981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210981</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 16 Jan 2007 19:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Wed, 17 Jan 2007 13:51:02 GMT]]></title><description><![CDATA[<p>1metal3 schrieb:</p>
<blockquote>
<p>Was meinst du mit linken?<br />
Ich verwende gar keine Ide nur editor und shell.</p>
</blockquote>
<p>Naja, die Übersetzungseinheiten musste noch verlinken. (Wobei es eh so aussieht, als hättest du keine eigenen .cpp Files für die Klassen.)<br />
Für gcc sieht das so aus:</p>
<pre><code>gcc -o Person.o -c Person.cpp
gcc -o Parents.o -c Parents.cpp
gcc -o Main.o -c Main.cpp
gcc -o Programm Main.o Person.o Parents.o // So linkst du die Objekte
</code></pre>
<p>Oder schau dich mal nach makefiles und <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-164415.html" rel="nofollow">autotools</a> um, erleichtert die Arbeit ungemein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211387</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Wed, 17 Jan 2007 13:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Thu, 18 Jan 2007 11:33:09 GMT]]></title><description><![CDATA[<p>Danke werd das heut mal testen.</p>
<p>Makefile hab ich schon das linken geht natürlich.</p>
<p>Ich habe zu den header files auch die cpps hab sie nur vergessen reinzutun: schaun so aus:</p>
<pre><code>#include &quot;person.h&quot;
#include &lt;string&gt;
using namespace std;

	Person::Person(){}

	Person::Person(string vn,string nn,int geb){
		Person::vname = vn; 
		Person::nname = nn; 
		Person::gebdate = geb;
	}
        Person::~Person(){}

        string Person::getVname(){
            return Person::vname;
        }

        string Person::getNname(){
            return Person::nname;
        }

        int Person::getGebdate(){
            return Person::gebdate;
        }

        void Person::setVname(string v){
            Person::vname=v;
        }

        void Person::setNname(string n){
            Person::nname=n;
        }

        void Person::setGebdate(int g){
            Person::gebdate=g;
        }
</code></pre>
<pre><code>#include &quot;parents.h&quot;
#include &lt;string&gt;
using namespace std;

        Parents::Parents(Person s, Person v, Person m){
		Parents::sohn = s; 
		Parents::vater= v;
		Paretns::mutter=m;
	}

	~Parents(){}

	Person getSohn(){
		return Parents::sohn;
	}	
	Person getVater(){
		return Parents::vater;
	} 
	Person getMutter(){
		return Parents::mutter;
	} 

	void setSohn(Person S){
		Parents::sohn=S;
	}
	void setVater(Person V){
		Parents::vater=V;
	} 
	void setMutter(Person M){
		Parents::mutter=M;
	}
</code></pre>
<p>Der Fehler ist irgendwas mit Referenzen oder so glaub ich, Ich werds heut testen - danke erstmal</p>
<p>Was anderes noch: Der Grund wieso ich 2 Header files und 2 cpps mache ist weil ich die klassen ohne Header files nicht der anderen bekannt machen kann oder? ich will ja das in der parents.cpp die person.h bekannt ist, das geht über inkludieren oder gibt es eine andere Möglichkeit?</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211920</guid><dc:creator><![CDATA[1metal3]]></dc:creator><pubDate>Thu, 18 Jan 2007 11:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Thu, 18 Jan 2007 11:34:58 GMT]]></title><description><![CDATA[<p>Ich schau mir das heute mal an dann stell ich morgen wieder Fragen vielen Dank für die prompte und gute Hilfe hier.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211921</guid><dc:creator><![CDATA[1metal3]]></dc:creator><pubDate>Thu, 18 Jan 2007 11:34:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Thu, 18 Jan 2007 12:01:01 GMT]]></title><description><![CDATA[<p>Man könnte doch theoretisch anstatt unsigned short (für das Alter) auch unsigned char nehme, oder? Ist doch effizienter <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/1211942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211942</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 18 Jan 2007 12:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Thu, 18 Jan 2007 12:14:31 GMT]]></title><description><![CDATA[<p>ich bin mir nicht sicher aber könnte der Fehler nicht in der main liegen:</p>
<p>1metal3 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main() {
Person p(&quot;Hubert&quot;,&quot;Mueller&quot;,23);
Person p1(&quot;Sepp&quot;,&quot;Humanig&quot;,63);
Person p2(&quot;Sabine&quot;,&quot;Mueller&quot;,33);

Parents(p,p1,p2); //&lt;---------
   
}
</code></pre>
</blockquote>
<p>Du rufst zwar den Konstruktor auf aber hast kein Objekt, das erstellt werden kann.<br />
Ich würde es so machen (ungetestet):</p>
<pre><code class="language-cpp">int main() {
Person p(&quot;Hubert&quot;,&quot;Mueller&quot;,23);
Person p1(&quot;Sepp&quot;,&quot;Humanig&quot;,63);
Person p2(&quot;Sabine&quot;,&quot;Mueller&quot;,33);

Parents Eltern(p,p1,p2); 
// oder:
Parents Eltern2 = new Parents(p,p1,p2);
// und bei Eltern2 natürlich mit delete Eltern2; den Destruktor aufrufen
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1211953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211953</guid><dc:creator><![CDATA[amateur (guest)]]></dc:creator><pubDate>Thu, 18 Jan 2007 12:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse mit Member Klassen? on Fri, 19 Jan 2007 16:23:18 GMT]]></title><description><![CDATA[<p>Vielen Dank euch allen, habs jetzt geschafft. Das Problem das ich hatte ich habe nicht mit Referenzen gearbeitet.</p>
<pre><code>void setSohn(Person S){
        Parents::sohn=S;
}
</code></pre>
<p>gehört ersetzt durch: (&amp;)</p>
<pre><code>void setSohn(Person &amp;S){
        Parents::sohn=S;
}
</code></pre>
<p>danke für die Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>@(D)Evil: danke für das prima Beispiel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212778</guid><dc:creator><![CDATA[1metal3]]></dc:creator><pubDate>Fri, 19 Jan 2007 16:23:18 GMT</pubDate></item></channel></rss>