<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Canvas</id>
	<title>Canvas - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Canvas"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Canvas&amp;action=history"/>
	<updated>2026-05-15T03:03:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=Canvas&amp;diff=80793&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:31, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Canvas&amp;diff=80793&amp;oldid=prev"/>
		<updated>2021-02-07T05:31:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; //CPPStudy_2005_1/Canvas &lt;br /&gt;
 //050829&lt;br /&gt;
 #include &amp;amp;lt;list&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;vector&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 class Shape{&lt;br /&gt;
 public:&lt;br /&gt;
 	virtual void Draw(){};&lt;br /&gt;
 	virtual void Add(Shape *pObj){};&lt;br /&gt;
 	virtual void Remove(Shape *pObj){};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 class Triangle : public Shape{&lt;br /&gt;
 public:&lt;br /&gt;
 	void Draw()&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Triangle&amp;quot; &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Rectangle : public Shape{&lt;br /&gt;
 public:&lt;br /&gt;
 	void Draw()&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Rectangle&amp;quot; &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Circle : public Shape{&lt;br /&gt;
 public:&lt;br /&gt;
 	void Draw()&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Circle&amp;quot; &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class CompositeShape : public Shape{&lt;br /&gt;
 private:&lt;br /&gt;
 	list&amp;amp;lt;Shape*&amp;amp;gt; m_shape;&lt;br /&gt;
 public:&lt;br /&gt;
 	void Draw() {&lt;br /&gt;
 		for (list&amp;amp;lt;Shape*&amp;amp;gt;::iterator it=m_shape.begin();it!=m_shape.end();it++){&lt;br /&gt;
 			(*it)-&amp;amp;gt;Draw();&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void Add(Shape *pObj) {&lt;br /&gt;
 		m_shape.push_front(pObj);&lt;br /&gt;
 	}&lt;br /&gt;
 	void Remove(Shape *pObj) {&lt;br /&gt;
 		for (list&amp;amp;lt;Shape*&amp;amp;gt;::iterator it=m_shape.begin(); it!=m_shape.end();it++){&lt;br /&gt;
 			if (pObj==*it) m_shape.erase(it);&lt;br /&gt;
 		}		&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 class Palette{&lt;br /&gt;
 private:&lt;br /&gt;
 	vector&amp;amp;lt;Shape*&amp;amp;gt; canvas;&lt;br /&gt;
 public:&lt;br /&gt;
 	void addNewShape(Shape *pObj)&lt;br /&gt;
 	{&lt;br /&gt;
 		canvas.push_back(pObj);&lt;br /&gt;
 	}&lt;br /&gt;
 	void Draw()&lt;br /&gt;
 	{&lt;br /&gt;
 		for(vector&amp;amp;lt;Shape*&amp;amp;gt;::iterator it=canvas.begin(); it!=canvas.end();++it)&lt;br /&gt;
 			(*it)-&amp;amp;gt;Draw();&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	Triangle aTriangle;&lt;br /&gt;
 	Rectangle aRectangle;&lt;br /&gt;
 	CompositeShape aCompositeShape2;&lt;br /&gt;
 &lt;br /&gt;
 	aCompositeShape2.Add(&amp;amp;amp;aTriangle);&lt;br /&gt;
 	aCompositeShape2.Add(&amp;amp;amp;aRectangle);&lt;br /&gt;
 &lt;br /&gt;
 	Circle aCircle;&lt;br /&gt;
 	Rectangle aRectangle2;&lt;br /&gt;
 	CompositeShape aCompositeShape;&lt;br /&gt;
 &lt;br /&gt;
 	aCompositeShape.Add(&amp;amp;amp;aCompositeShape2);&lt;br /&gt;
 	aCompositeShape.Add(&amp;amp;amp;aCircle);&lt;br /&gt;
 	aCompositeShape.Add(&amp;amp;amp;aRectangle2);&lt;br /&gt;
 &lt;br /&gt;
 	Palette aPalette;&lt;br /&gt;
 	aPalette.addNewShape(&amp;amp;amp;aCompositeShape);&lt;br /&gt;
 	aPalette.Draw();&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>