<?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[Vererbung rechte]]></title><description><![CDATA[<p>also ich habe vor einen Graphiceditor zu schreiben, habe auch schon ziemlich genau im kopf wie ich das machen werde(mit polymorphie).</p>
<p>Ich habe nun eine klasse Form geschrieben, in der der rahmen der figur(Quadrat, Kreis, Dreieck, egal) gespeichert ist.</p>
<pre><code class="language-cpp">#ifndef FORM_H
#define FORM_H

#include &quot;Point.h&quot;

class Form
{
private:
	Point center;
	Point lt;
	Point rb;
	void setCenter();
public:
	Form(Point leftTop,Point rightBottom);
	Form(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2);

	Point getLeftTop() const {return lt;}
	Point getRightBottom() const {return rb;}
	Point getCenter() const {return center;}

	void setLeftTop(const Point&amp; leftTop);
	void setLeftTop(unsigned short x1, unsigned short y1);
	void setRightBottom(const Point&amp; rightBottom);
	void setRightBottom(unsigned short x2, unsigned short y2);
	void setAll(const Point&amp; leftTop, const Point&amp; rightBottom);
	void setAll(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2);

//weiter funktionen, unteranderem zum zeichnen des rahmens um die figur herum
};

void Form::setCenter()
{
	center.setXYCoord((rb.getXCoord() - lt.getXCoord())/2,(rb.getYCoord() - lt.getYCoord())/2);
}

Form::Form(Point leftTop, Point rightBottom)
:lt(leftTop),rb(rightBottom)
{
	setCenter();
}

Form::Form(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{
	lt.setXYCoord(x1,y1);
	rb.setXYCoord(x2,y2);
	setCenter();
}

void Form::setLeftTop(const Point&amp; leftTop)
{
	lt = leftTop;
	setCenter();
}

void Form::setLeftTop(unsigned short x1, unsigned short y1)
{
	lt.setXYCoord(x1,y1);
	setCenter();
}

void Form::setRightBottom(const Point&amp; rightBottom)
{
	rb = rightBottom;
	setCenter();
}

void Form::setRightBottom(unsigned short x2, unsigned short y2)
{
	rb.setXYCoord(x2,y2);
	setCenter();
}

void Form::setAll(const Point&amp; leftTop, const Point&amp; rightBottom)
{
	lt = leftTop;
	rb = rightBottom;
	setCenter();
}

void Form::setAll(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{
	lt.setXYCoord(x1,y1);
	rb.setXYCoord(x2,y2);
	setCenter();
}

#endif
</code></pre>
<p>Nun weiß ich aber nicht ob ich den klassen die davon erben, freien zugriff auf die Point leftTop und rightBottom geben soll(also in protected). Dass Center privat ist, ist sicher, da dies diese klasse übernehmen soll. Das problem ist dass ich nicht weiß ob der benutzer daran denkt dann setCenter aufzurufen, nachdem er die werte verändert hat.</p>
<p>Darum wollte ich mal eure meinung fragen wie man das am besten aufbaut <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/222253/vererbung-rechte</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 04:09:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222253.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Sep 2008 22:43:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung rechte on Tue, 09 Sep 2008 22:43:04 GMT]]></title><description><![CDATA[<p>also ich habe vor einen Graphiceditor zu schreiben, habe auch schon ziemlich genau im kopf wie ich das machen werde(mit polymorphie).</p>
<p>Ich habe nun eine klasse Form geschrieben, in der der rahmen der figur(Quadrat, Kreis, Dreieck, egal) gespeichert ist.</p>
<pre><code class="language-cpp">#ifndef FORM_H
#define FORM_H

#include &quot;Point.h&quot;

class Form
{
private:
	Point center;
	Point lt;
	Point rb;
	void setCenter();
public:
	Form(Point leftTop,Point rightBottom);
	Form(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2);

	Point getLeftTop() const {return lt;}
	Point getRightBottom() const {return rb;}
	Point getCenter() const {return center;}

	void setLeftTop(const Point&amp; leftTop);
	void setLeftTop(unsigned short x1, unsigned short y1);
	void setRightBottom(const Point&amp; rightBottom);
	void setRightBottom(unsigned short x2, unsigned short y2);
	void setAll(const Point&amp; leftTop, const Point&amp; rightBottom);
	void setAll(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2);

//weiter funktionen, unteranderem zum zeichnen des rahmens um die figur herum
};

void Form::setCenter()
{
	center.setXYCoord((rb.getXCoord() - lt.getXCoord())/2,(rb.getYCoord() - lt.getYCoord())/2);
}

Form::Form(Point leftTop, Point rightBottom)
:lt(leftTop),rb(rightBottom)
{
	setCenter();
}

Form::Form(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{
	lt.setXYCoord(x1,y1);
	rb.setXYCoord(x2,y2);
	setCenter();
}

void Form::setLeftTop(const Point&amp; leftTop)
{
	lt = leftTop;
	setCenter();
}

void Form::setLeftTop(unsigned short x1, unsigned short y1)
{
	lt.setXYCoord(x1,y1);
	setCenter();
}

void Form::setRightBottom(const Point&amp; rightBottom)
{
	rb = rightBottom;
	setCenter();
}

void Form::setRightBottom(unsigned short x2, unsigned short y2)
{
	rb.setXYCoord(x2,y2);
	setCenter();
}

void Form::setAll(const Point&amp; leftTop, const Point&amp; rightBottom)
{
	lt = leftTop;
	rb = rightBottom;
	setCenter();
}

void Form::setAll(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{
	lt.setXYCoord(x1,y1);
	rb.setXYCoord(x2,y2);
	setCenter();
}

#endif
</code></pre>
<p>Nun weiß ich aber nicht ob ich den klassen die davon erben, freien zugriff auf die Point leftTop und rightBottom geben soll(also in protected). Dass Center privat ist, ist sicher, da dies diese klasse übernehmen soll. Das problem ist dass ich nicht weiß ob der benutzer daran denkt dann setCenter aufzurufen, nachdem er die werte verändert hat.</p>
<p>Darum wollte ich mal eure meinung fragen wie man das am besten aufbaut <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1579499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579499</guid><dc:creator><![CDATA[uhsuhz]]></dc:creator><pubDate>Tue, 09 Sep 2008 22:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung rechte on Tue, 09 Sep 2008 23:27:33 GMT]]></title><description><![CDATA[<p>Ich dachte du willst einen Grafik-Editor schreiben, dann bist doch du der Anwender, dann mach es doch fürs Erste so eingeschränkt wie möglich und wenn du siehst du brauchst zusätzliche Methoden, dann kannst du diese ja hinzufügen oder zugänglich machen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1579501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579501</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Tue, 09 Sep 2008 23:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung rechte on Wed, 10 Sep 2008 11:17:14 GMT]]></title><description><![CDATA[<p>ok danke^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579688</guid><dc:creator><![CDATA[uhsuhz]]></dc:creator><pubDate>Wed, 10 Sep 2008 11:17:14 GMT</pubDate></item></channel></rss>