<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>C++ Tutor</title>
	<atom:link href="http://www.qlineorientalist.com/CTutorial/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.qlineorientalist.com/CTutorial</link>
	<description>In which our intrepid professor inducts you into the secrets of C++ programming...</description>
	<lastBuildDate>Mon, 04 Apr 2011 23:42:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Sorting</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=875</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=875#comments</comments>
		<pubDate>Mon, 04 Apr 2011 23:42:20 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[Sort]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=875</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; using namespace std; int main() { const int arraySize=10; int a[arraySize]={11, 4, 2, 5, 31, 6, 8, 3, -9, 0}; int newNumber; cout&#60;&#60;&#34;Unsorted array:\n&#34;; for(int i = 0; i&#60;arraySize; i++) cout&#60;&#60;a[i]&#60;&#60;&#34; &#34;; for(int i = 0; i&#60;arraySize; i++) { newNumber=a[i]; int moveItem=i; while((moveItem&#62;0)&#38;&#38;(a[moveItem-1]&#62;newNumber)) { a[moveItem]=a[moveItem-1]; moveItem--; } a[moveItem]=newNumber; } cout&#60;&#60;&#34;Sorted [...]]]></description>
			<content:encoded><![CDATA[<p><?xml version="1.0" encoding="iso-8859-1"?><br />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head></p>
<p><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><br />
<meta name="generator" content="SynEdit HTML exporter" /></p>
<style type="text/css">
<!--
body { color: #000000; background-color: #FFFFFF; }
.cpp1-assembler { color: #0000FF; }
.cpp1-character { color: #000000; }
.cpp1-comment { color: #5E81BC; font-style: italic; }
.cpp1-float { color: #800080; }
.cpp1-hexadecimal { color: #800080; }
.cpp1-identifier { color: #000000; }
.cpp1-illegalchar { color: #000000; }
.cpp1-number { color: #800080; }
.cpp1-octal { color: #800080; }
.cpp1-preprocessor { color: #008000; }
.cpp1-reservedword { color: #000000; font-weight: bold; }
.cpp1-space { background-color: #FFFFFF; color: #000000; }
.cpp1-string { color: #FF0000; }
.cpp1-symbol { color: #000000; }
-->
</style>
<p></head><br />
<body></p>
<pre>
<code><span style="font: 10pt Courier New;"><span class="cpp1-preprocessor">#include &lt;iostream&gt;
</span><span class="cpp1-reservedword">using</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">namespace</span><span class="cpp1-space"> std;
</span><span class="cpp1-reservedword">using</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">namespace</span><span class="cpp1-space"> std;

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> main()
{
    </span><span class="cpp1-reservedword">const</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> arraySize=</span><span class="cpp1-number">10</span><span class="cpp1-symbol">;
    </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> a[arraySize]={</span><span class="cpp1-number">11</span><span class="cpp1-symbol">, </span><span class="cpp1-number">4</span><span class="cpp1-symbol">, </span><span class="cpp1-number">2</span><span class="cpp1-symbol">, </span><span class="cpp1-number">5</span><span class="cpp1-symbol">, </span><span class="cpp1-number">31</span><span class="cpp1-symbol">, </span><span class="cpp1-number">6</span><span class="cpp1-symbol">, </span><span class="cpp1-number">8</span><span class="cpp1-symbol">, </span><span class="cpp1-number">3</span><span class="cpp1-symbol">, -</span><span class="cpp1-number">9</span><span class="cpp1-symbol">, </span><span class="cpp1-number">0</span><span class="cpp1-symbol">};
    </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> newNumber;
    cout&lt;&lt;</span><span class="cpp1-string">&quot;Unsorted array:\n&quot;</span><span class="cpp1-symbol">;
    </span><span class="cpp1-reservedword">for</span><span class="cpp1-symbol">(</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> i = </span><span class="cpp1-number">0</span><span class="cpp1-symbol">; i&lt;arraySize; i++)
            cout&lt;&lt;a[i]&lt;&lt;</span><span class="cpp1-string">&quot;  &quot;</span><span class="cpp1-symbol">;
    </span><span class="cpp1-reservedword">for</span><span class="cpp1-symbol">(</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> i = </span><span class="cpp1-number">0</span><span class="cpp1-symbol">; i&lt;arraySize; i++)
    {
            newNumber=a[i];
            </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> moveItem=i;
            </span><span class="cpp1-reservedword">while</span><span class="cpp1-symbol">((moveItem&gt;</span><span class="cpp1-number">0</span><span class="cpp1-symbol">)&amp;&amp;(a[moveItem-</span><span class="cpp1-number">1</span><span class="cpp1-symbol">]&gt;newNumber))
            {
              a[moveItem]=a[moveItem-</span><span class="cpp1-number">1</span><span class="cpp1-symbol">];
              moveItem--;
            }
            a[moveItem]=newNumber;
    }
    cout&lt;&lt;</span><span class="cpp1-string">&quot;Sorted array:\n&quot;</span><span class="cpp1-symbol">;
    </span><span class="cpp1-reservedword">for</span><span class="cpp1-symbol">(</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> i = </span><span class="cpp1-number">0</span><span class="cpp1-symbol">; i&lt;arraySize; i++)
            cout&lt;&lt;a[i]&lt;&lt;</span><span class="cpp1-string">&quot;  &quot;</span><span class="cpp1-symbol">;
    system(</span><span class="cpp1-string">&quot;pause&quot;</span><span class="cpp1-symbol">);
    </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> </span><span class="cpp1-number">0</span><span class="cpp1-symbol">;
}

</span></span>
</code></pre>
<p></body><br />
</html></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=875</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linear Search Function</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=873</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=873#comments</comments>
		<pubDate>Mon, 04 Apr 2011 23:10:35 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[functions]]></category>
		<category><![CDATA[Sorting]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=873</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; int linearSearch(const int[], int, int); int main() { const int arraySize=10; int a[arraySize]={3, 0, 11, -4, 45, 23, 343, 32, 0, 33}; int key; cout&#60;&#60;&#34;Enter integer search key: &#34;; cin&#62;&#62;key; int index = linearSearch(a, key, arraySize); if(index !=-1) cout&#60;&#60;&#34;Index where element lives is &#34;&#60;&#60;index; else cout&#60;&#60;&#34;Not there.&#34;; system(&#34;pause&#34;); return 0; [...]]]></description>
			<content:encoded><![CDATA[<p><?xml version="1.0" encoding="iso-8859-1"?><br />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head></p>
<p><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><br />
<meta name="generator" content="SynEdit HTML exporter" /></p>
<style type="text/css">
<!--
body { color: #000000; background-color: #FFFFFF; }
.cpp1-assembler { color: #0000FF; }
.cpp1-character { color: #000000; }
.cpp1-comment { color: #5E81BC; font-style: italic; }
.cpp1-float { color: #800080; }
.cpp1-hexadecimal { color: #800080; }
.cpp1-identifier { color: #000000; }
.cpp1-illegalchar { color: #000000; }
.cpp1-number { color: #800080; }
.cpp1-octal { color: #800080; }
.cpp1-preprocessor { color: #008000; }
.cpp1-reservedword { color: #000000; font-weight: bold; }
.cpp1-space { background-color: #FFFFFF; color: #000000; }
.cpp1-string { color: #FF0000; }
.cpp1-symbol { color: #000000; }
-->
</style>
<p></head><br />
<body></p>
<pre>
<code><span style="font: 10pt Courier New;"><span class="cpp1-preprocessor">#include &lt;iostream&gt;
</span><span class="cpp1-reservedword">using</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">namespace</span><span class="cpp1-space"> std;

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> linearSearch(</span><span class="cpp1-reservedword">const</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">int</span><span class="cpp1-symbol">[], </span><span class="cpp1-reservedword">int</span><span class="cpp1-symbol">, </span><span class="cpp1-reservedword">int</span><span class="cpp1-symbol">);

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> main()
{
    </span><span class="cpp1-reservedword">const</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> arraySize=</span><span class="cpp1-number">10</span><span class="cpp1-symbol">;
    </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> a[arraySize]={</span><span class="cpp1-number">3</span><span class="cpp1-symbol">, </span><span class="cpp1-number">0</span><span class="cpp1-symbol">, </span><span class="cpp1-number">11</span><span class="cpp1-symbol">, -</span><span class="cpp1-number">4</span><span class="cpp1-symbol">, </span><span class="cpp1-number">45</span><span class="cpp1-symbol">, </span><span class="cpp1-number">23</span><span class="cpp1-symbol">, </span><span class="cpp1-number">343</span><span class="cpp1-symbol">, </span><span class="cpp1-number">32</span><span class="cpp1-symbol">, </span><span class="cpp1-number">0</span><span class="cpp1-symbol">, </span><span class="cpp1-number">33</span><span class="cpp1-symbol">};
    </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> key;
    cout&lt;&lt;</span><span class="cpp1-string">&quot;Enter integer search key: &quot;</span><span class="cpp1-symbol">;
    cin&gt;&gt;key;
    </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> index = linearSearch(a, key, arraySize);
    </span><span class="cpp1-reservedword">if</span><span class="cpp1-symbol">(index !=-</span><span class="cpp1-number">1</span><span class="cpp1-symbol">)
               cout&lt;&lt;</span><span class="cpp1-string">&quot;Index where element lives is &quot;</span><span class="cpp1-symbol">&lt;&lt;index;
    </span><span class="cpp1-reservedword">else
</span><span class="cpp1-space">               cout&lt;&lt;</span><span class="cpp1-string">&quot;Not there.&quot;</span><span class="cpp1-symbol">;
    system(</span><span class="cpp1-string">&quot;pause&quot;</span><span class="cpp1-symbol">);
    </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> </span><span class="cpp1-number">0</span><span class="cpp1-symbol">;
}

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> linearSearch (</span><span class="cpp1-reservedword">const</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> array[], </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> key, </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> sizeOfArray)
{
    </span><span class="cpp1-reservedword">for</span><span class="cpp1-symbol">(</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> i = </span><span class="cpp1-number">0</span><span class="cpp1-symbol">; i &lt;sizeOfArray; i++)
            </span><span class="cpp1-reservedword">if</span><span class="cpp1-symbol">(array[i]==key)
                             </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> i;
    </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> -</span><span class="cpp1-number">1</span><span class="cpp1-symbol">;
}

</span></span>
</code></pre>
<p></body><br />
</html></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=873</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cin.get() and cin.getline()</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=871</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=871#comments</comments>
		<pubDate>Wed, 01 Dec 2010 23:21:14 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[.get()]]></category>
		<category><![CDATA[cin and cout]]></category>
		<category><![CDATA[getline()]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=871</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; int main() { char line[25]; cout &#60;&#60; " Type a line and hit Enter:"; cin.get( line, 25 ); cout &#60;&#60; ' ' &#60;&#60; line&#60;&#60;"\n"; cout&#60;&#60;"Only 25 characters will be returned.\n"; cout&#60;&#60;"**********************************************\n"; cout &#60;&#60; " Type a line and endit it with @:"; cin.getline( line, 25, '@' ); cout &#60;&#60; line; [...]]]></description>
			<content:encoded><![CDATA[<p><span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std; </p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
   <span class='keywords';>char </span>line[25];<br />
   cout &lt;&lt; <span class='text'>" Type a line <span class='keywords';>and </span>hit Enter:"</span>;<br />
   cin.get( line, 25 );<br />
   cout &lt;&lt; ' ' &lt;&lt; line&lt;&lt;<span class='text'>"\n"</span>;<br />
   cout&lt;&lt;<span class='text'>"Only 25 characters will be returned.\n"</span>;<br />
   cout&lt;&lt;<span class='text'>"**********************************************\n"</span>;<br />
   cout &lt;&lt; <span class='text'>" Type a line <span class='keywords';>and </span>endit it with @:"</span>;<br />
   cin.getline( line, 25, '@' );<br />
   cout &lt;&lt; line;<br />
   cout&lt;&lt;<span class='text'>"Only the last 25 characters will be returned.\n"</span>;<br />
   cout&lt;&lt;<span class='text'>"**********************************************\n"</span>;<br />
   <span class='keywords';>char </span>text[]=<span class='text'>"story"</span>;<br />
   cout&lt;&lt;text&lt;&lt;<span class='text'>"\n"</span>;<br />
   system(<span class='text'>"pause"</span>);<br />
   <span class='keywords';>return </span>0;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=871</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vectors</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=866</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=866#comments</comments>
		<pubDate>Fri, 26 Nov 2010 20:34:11 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=866</guid>
		<description><![CDATA[#include &#60;iostream&#62; #include &#60;vector&#62; using namespace std; void loadVector(vector &#60;int&#62; &#038;); void printVector(vector &#60;int&#62; &#038;); void loadArray(int[], int); void printArray(int[], int); bool equalArrays(int[], int, int[], int); int main() { const int array1_length = 4, array2_length = 4 ; vector &#60;int &#62; integerVector1(4), integerVector2(4);//Declare vector. int integerArray1[4], integerArray2[4];//Declare array. if (integerVector1==integerVector2) cout&#60;&#60;"The two vectors are equal.\n"; [...]]]></description>
			<content:encoded><![CDATA[<p><span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='inclusions'>#include &lt;vector&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>void </span>loadVector(vect<span class='keywords';>or </span>&lt;int&gt; &#038;);<br />
<span class='keywords';>void </span>printVector(vect<span class='keywords';>or </span>&lt;int&gt; &#038;);<br />
<span class='keywords';>void </span>loadArray(int[], int);<br />
<span class='keywords';>void </span>printArray(int[], int);<br />
<span class='keywords';>bool </span>equalArrays(int[], int, int[], int);</p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
    <span class='keywords';>const </span><span class='keywords';>int </span>array1_length = 4, array2_length = 4 ;<br />
    vect<span class='keywords';>or </span>&lt;<span class='keywords';>int </span>&gt; integerVector1(4), integerVector2(4);<span class='comments'>//Declare vector.</span><br />
    <span class='keywords';>int </span>integerArray1[4], integerArray2[4];<span class='comments'>//Declare array.</span><br />
<span class='keywords';>if </span>(integerVector1==integerVector2)<br />
   cout&lt;&lt;<span class='text'>"The two vectors are equal.\n"</span>;<br />
else<br />
    cout&lt;&lt;<span class='text'>"The two vectors are <span class='keywords';>not </span>equal.\n"</span>;<br />
<span class='keywords';>if </span>(equalArrays(integerArray1, array1_length, integerArray2, array2_length))<br />
   cout&lt;&lt;<span class='text'>"The two arrays are equal.\n"</span>;<br />
else<br />
    cout&lt;&lt;<span class='text'>"The two arrays are <span class='keywords';>not </span>equal.\n"</span>;</p>
<p>loadVector(integerVector1);<br />
loadVector(integerVector2);</p>
<p>printVector(integerVector1);<br />
printVector(integerVector2);</p>
<p><span class='comments'>/* Note that the array function, undlike the vect<span class='keywords';>or </span>function,<br />
needs to be told the array's dimension. */</span><br />
loadArray(integerArray1, array1_length);<br />
loadArray(integerArray1, array2_length);</p>
<p>printArray(integerArray1, array1_length);<br />
printArray(integerArray2, array2_length);</p>
<p>vector&lt;int&gt; integerVector3(integerVector1);<br />
<span class='keywords';>if </span>(integerVector1==integerVector3)<br />
   cout&lt;&lt;<span class='text'>"The old vect<span class='keywords';>or </span><span class='keywords';>and </span>the <span class='keywords';>new </span>vect<span class='keywords';>or </span>are equal.\n"</span>;<br />
else<br />
    cout&lt;&lt;<span class='text'>"The old vect<span class='keywords';>or </span><span class='keywords';>and </span>the <span class='keywords';>new </span>vect<span class='keywords';>or </span>are <span class='keywords';>not </span>equal.\n"</span>;<br />
<span class='comments'>/* Unlike arrays, vectors have a mechanism <span class='keywords';>f<span class='keywords';>or </span></span>finding out <span class='keywords';>if </span>you have gone<br />
beyond the array, <span class='keywords';>using </span>the at() function. */</span><br />
integerVector1.at(2)=10;<br />
<span class='comments'>//integerVector1.at(8)=100; This will generate an error.</span></p>
<p>system(<span class='text'>"pause"</span>);<br />
<span class='keywords';>return </span>0;<br />
</span>}</p>
<p><span class='keywords';>void </span>loadVector(vect<span class='keywords';>or </span>&lt;int&gt; &#038;v)<br />
{<span class='indent'><br />
<span class='comments'>/*Unlike the array, vect<span class='keywords';>or </span>objects have a built-in size() function which<br />
means that the vect<span class='keywords';>or </span>size does <span class='keywords';>not </span>need to be imported. */</span><br />
     <span class='keywords';>f<span class='keywords';>or </span></span>(size_t i=0; i&lt;v.size(); i++)<br />
     {<span class='indent'><br />
         cout&lt;&lt;<span class='text'>"Enter an integer: "</span>;<br />
         cin&gt;&gt;v[i];<br />
     </span>}<br />
</span>}</p>
<p><span class='keywords';>void </span>printVector(vect<span class='keywords';>or </span>&lt;int&gt; &#038;v)<br />
{<span class='indent'><br />
     <span class='keywords';>f<span class='keywords';>or </span></span>(size_t i=0; i&lt;v.size(); i++)<br />
         cout&lt;&lt;v[i]&lt;&lt;<span class='text'>"\n"</span>;<br />
</span>}     </p>
<p><span class='keywords';>void </span>loadArray(<span class='keywords';>int </span>a[] , <span class='keywords';>int </span>length)<br />
{<span class='indent'><br />
     <span class='keywords';>f<span class='keywords';>or </span></span>(<span class='keywords';>int </span>i = 0; i&lt;length; i++)<br />
     {<span class='indent'><br />
         cout&lt;&lt;<span class='text'>"Enter an integer: "</span>;<br />
         cin&gt;&gt;a[i];<br />
     </span>}<br />
</span>}</p>
<p><span class='keywords';>void </span>printArray(<span class='keywords';>int </span>a[] , <span class='keywords';>int </span>length)<br />
{<span class='indent'><br />
     for(<span class='keywords';>int </span>i = 0; i&lt;length; i++)<br />
             cout&lt;&lt;a[i]&lt;&lt;<span class='text'>"\n"</span>;<br />
</span>}</p>
<p><span class='keywords';>bool </span>equalArrays(<span class='keywords';>int </span>a1[] , <span class='keywords';>int </span>length1, <span class='keywords';>int </span>a2[] , <span class='keywords';>int </span>length2)<br />
{<span class='indent'><br />
     <span class='keywords';>if </span>(length1!=length2)<br />
        <span class='keywords';>return </span>false;<br />
     else<br />
         for(<span class='keywords';>int </span>i = 0; i&lt;length1; i++)<br />
         {<span class='indent'><br />
                 if(a1[i]!=a2[i])<br />
                                 <span class='keywords';>return </span>false;<br />
         </span>}<br />
         <span class='keywords';>return </span>true;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=866</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Static Variables</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=809</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=809#comments</comments>
		<pubDate>Wed, 24 Nov 2010 23:10:31 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[functions]]></category>
		<category><![CDATA[Global Variables]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=809</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; int a = 0; int b(); int main() { for (int i=1; i&#60;=10; i++) { a++; cout&#60;&#60;a&#60;&#60;" from the main function.\n"; cout&#60;&#60;b()&#60;&#60;" after calling the 'b' function.\n"; } system("pause"); return 0; } int b() { static int a = 0; a++; return a; }]]></description>
			<content:encoded><![CDATA[<p><span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p>int  a = 0;<br />
<span class='keywords';>int </span>b();</p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
    <span class='keywords';>f<span class='keywords';>or </span></span>(<span class='keywords';>int </span>i=1; i&lt;=10; i++)<br />
    {<span class='indent'><br />
        a++;<br />
        cout&lt;&lt;a&lt;&lt;<span class='text'>" from the main function.\n"</span>;<br />
        cout&lt;&lt;b()&lt;&lt;<span class='text'>" after calling the 'b' function.\n"</span>;<br />
    </span>}<br />
    system(<span class='text'>"pause"</span>);<br />
    <span class='keywords';>return </span>0;<br />
</span>}</p>
<p><span class='keywords';>int </span>b()<br />
{<span class='indent'><br />
    <span class='keywords';>static </span><span class='keywords';>int </span>a = 0;<br />
    a++;<br />
    <span class='keywords';>return </span>a;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=809</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Global Variables II</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=807</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=807#comments</comments>
		<pubDate>Wed, 24 Nov 2010 23:09:36 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[functions]]></category>
		<category><![CDATA[Global Variables]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=807</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; int a = 0; int b(); int main() { for (int i=1; i&#60;=10; i++) { a++; cout&#60;&#60;a&#60;&#60;" from the main function.\n"; cout&#60;&#60;b()&#60;&#60;" after calling the 'b' function.\n"; } system("pause"); return 0; } int b() { int a = 0; a++; return a; }]]></description>
			<content:encoded><![CDATA[<p><span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p>int  a = 0;<br />
<span class='keywords';>int </span>b();</p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
    <span class='keywords';>f<span class='keywords';>or </span></span>(<span class='keywords';>int </span>i=1; i&lt;=10; i++)<br />
    {<span class='indent'><br />
        a++;<br />
        cout&lt;&lt;a&lt;&lt;<span class='text'>" from the main function.\n"</span>;<br />
        cout&lt;&lt;b()&lt;&lt;<span class='text'>" after calling the 'b' function.\n"</span>;<br />
    </span>}<br />
    system(<span class='text'>"pause"</span>);<br />
    <span class='keywords';>return </span>0;<br />
</span>}</p>
<p><span class='keywords';>int </span>b()<br />
{<span class='indent'><br />
    <span class='keywords';>int </span>a = 0;<br />
    a++;<br />
    <span class='keywords';>return </span>a;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=807</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Global Variables</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=800</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=800#comments</comments>
		<pubDate>Wed, 24 Nov 2010 23:08:30 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[functions]]></category>
		<category><![CDATA[Global Variables]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=800</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; int a = 0; int b(); int main() { for ( class='keywords';&#62;int i=1; i&#60;=10; i++) { a++; cout&#60;&#60;a&#60;&#60;" from the main function.\n"; cout&#60;&#60;b()&#60;&#60;" after calling the 'b' function.\n"; } system("pause"); return 0; } int b() { a++; return a; }]]></description>
			<content:encoded><![CDATA[<p><span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>int </span>a = 0;<br />
<span class='keywords';>int </span>b();</p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
<span class='keywords';>f<span class='keywords';>or </span></span>( class='keywords';&gt;<span class='keywords';>int </span>i=1; i&lt;=10; i++)<br />
{<span class='indent'><br />
a++;<br />
cout&lt;&lt;a&lt;&lt;<span class='text'>" from the main function.\n"</span>;<br />
cout&lt;&lt;b()&lt;&lt;<span class='text'>" after calling the 'b' function.\n"</span>;<br />
</span>}<br />
system(<span class='text'>"pause"</span>);<br />
<span class='keywords';>return </span>0;<br />
</span>}</p>
<p><span class='keywords';>int </span>b()<br />
{<span class='indent'><br />
a++;<br />
<span class='keywords';>return </span>a;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=800</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Function Demonstration</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=797</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=797#comments</comments>
		<pubDate>Wed, 24 Nov 2010 22:59:40 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[functions]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=797</guid>
		<description><![CDATA[#include &#60;iostream&#62; using namespace std; int answer(int, int); int main() { int a, b; cout&#60;&#60;&#34;Enter two numbers: &#34;; cin&#62;&#62;a&#62;&#62;b; cout&#60;&#60;&#34;The answer is: &#34;&#60;&#60;answer(a, b)&#60;&#60;&#34;\n&#34;; system(&#34;pause&#34;); return 0; } int answer(int a, int b) { if(a%2==0 &#38;&#38; b%2==0) return 3*a+7*b; else return 2*a+5*b; }]]></description>
			<content:encoded><![CDATA[<p><?xml version="1.0" encoding="iso-8859-1"?><br />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head></p>
<p><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><br />
<meta name="generator" content="SynEdit HTML exporter" /></p>
<style type="text/css">
<!--
body { color: #000000; background-color: #FFFFFF; }
.cpp1-assembler { color: #0000FF; }
.cpp1-character { color: #000000; }
.cpp1-comment { color: #5E81BC; font-style: italic; }
.cpp1-float { color: #800080; }
.cpp1-hexadecimal { color: #800080; }
.cpp1-identifier { color: #000000; }
.cpp1-illegalchar { color: #000000; }
.cpp1-number { color: #800080; }
.cpp1-octal { color: #800080; }
.cpp1-preprocessor { color: #008000; }
.cpp1-reservedword { color: #000000; font-weight: bold; }
.cpp1-space { background-color: #FFFFFF; color: #000000; }
.cpp1-string { color: #FF0000; }
.cpp1-symbol { color: #000000; }
-->
</style>
<p></head><br />
<body></p>
<pre>
<code><span style="font: 10pt Courier New;"><span class="cpp1-preprocessor">#include &lt;iostream&gt;
</span><span class="cpp1-reservedword">using</span><span class="cpp1-space"> </span><span class="cpp1-reservedword">namespace</span><span class="cpp1-space"> std;

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> answer(</span><span class="cpp1-reservedword">int</span><span class="cpp1-symbol">, </span><span class="cpp1-reservedword">int</span><span class="cpp1-symbol">);

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> main()
{
    </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> a, b;
    cout&lt;&lt;</span><span class="cpp1-string">&quot;Enter two numbers: &quot;</span><span class="cpp1-symbol">;
    cin&gt;&gt;a&gt;&gt;b;
    cout&lt;&lt;</span><span class="cpp1-string">&quot;The answer is: &quot;</span><span class="cpp1-symbol">&lt;&lt;answer(a, b)&lt;&lt;</span><span class="cpp1-string">&quot;\n&quot;</span><span class="cpp1-symbol">;
    system(</span><span class="cpp1-string">&quot;pause&quot;</span><span class="cpp1-symbol">);
    </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> </span><span class="cpp1-number">0</span><span class="cpp1-symbol">;
}

</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> answer(</span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> a, </span><span class="cpp1-reservedword">int</span><span class="cpp1-space"> b)
{
    </span><span class="cpp1-reservedword">if</span><span class="cpp1-symbol">(a%</span><span class="cpp1-number">2</span><span class="cpp1-symbol">==</span><span class="cpp1-number">0</span><span class="cpp1-space"> &amp;&amp; b%</span><span class="cpp1-number">2</span><span class="cpp1-symbol">==</span><span class="cpp1-number">0</span><span class="cpp1-symbol">)
         </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> </span><span class="cpp1-number">3</span><span class="cpp1-symbol">*a+</span><span class="cpp1-number">7</span><span class="cpp1-symbol">*b;
    </span><span class="cpp1-reservedword">else
</span><span class="cpp1-space">        </span><span class="cpp1-reservedword">return</span><span class="cpp1-space"> </span><span class="cpp1-number">2</span><span class="cpp1-symbol">*a+</span><span class="cpp1-number">5</span><span class="cpp1-symbol">*b;
}

</span></span>
</code></pre>
<p></body><br />
</html></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=797</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polymorphism I</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=790</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=790#comments</comments>
		<pubDate>Tue, 16 Nov 2010 01:44:04 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[Class]]></category>
		<category><![CDATA[Inheritance]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=790</guid>
		<description><![CDATA[Go to File: Fraction1.cpp Fraction1.h MixedNumber1.cpp MixedNumber1.h Main.cpp Fraction1.cpp #include "Fraction1.h" #include &#60;iostream&#62; using namespace std; Fraction::Fraction() { //Initializes fractions to 1/2 by default. numerator=1; denominator=2; } Fraction::Fraction(int n, int d) { setNumerator(n); setDenominator(d); } void Fraction::setNumerator(int input) { numerator=input; } void Fraction::setDenominator(int input) { if(input==0) cout&#60;&#60;"You cannot have zero in the denominator."; denominator=input; } [...]]]></description>
			<content:encoded><![CDATA[<h3><a name="PolymorphismI.TOC">Go to File:</a></h3>
<p><a href="#PolymorphismI.Fraction1.cpp">Fraction1.cpp</a><br />
<a href="#PolymorphismI.Fraction1.h">Fraction1.h</a><br />
<a href="#PolymorphismI.MixedNumber1.cpp">MixedNumber1.cpp</a><br />
<a href="#PolymorphismI.MixedNumber1.h">MixedNumber1.h</a><br />
<a href="#PolymorphismI.Main.cpp">Main.cpp</a></p>
<hr />
<p><a name="PolymorphismI.Fraction1.cpp" href="#PolymorphismI.TOC">Fraction1.cpp</a></p>
<p><span class='inclusions'>#include <span class='text'>"Fraction1.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p>Fraction::Fraction()<br />
{<span class='indent'><br />
                    <span class='comments'>//Initializes fractions to 1/2 by default.</span><br />
                    numerator=1;<br />
                    denominator=2;<br />
</span>}<br />
Fraction::Fraction(<span class='keywords';>int </span>n, <span class='keywords';>int </span>d)<br />
{<span class='indent'><br />
             setNumerator(n);<br />
             setDenominator(d);<br />
</span>}<br />
<span class='keywords';>void </span>Fraction::setNumerator(<span class='keywords';>int </span>input)<br />
{<span class='indent'><br />
numerator=input;<br />
</span>}<br />
<span class='keywords';>void </span>Fraction::setDenominator(<span class='keywords';>int </span>input)<br />
{<span class='indent'><br />
     if(input==0)<br />
                 cout&lt;&lt;<span class='text'>"You can<span class='keywords';>not </span>have zero in the denominator."</span>;<br />
                 denominator=input;<br />
</span>}<br />
<span class='keywords';>int </span>Fraction::getNumerator()<br />
{<span class='indent'><br />
<span class='keywords';>return </span>numerator;<br />
</span>}<br />
<span class='keywords';>int </span>Fraction::getDenominator()<br />
{<span class='indent'><br />
<span class='keywords';>return </span>denominator;<br />
</span>}</p>
<p><span class='keywords';>void </span>Fraction::displayFraction()<br />
{<span class='indent'><br />
cout&lt;&lt;numerator&lt;&lt;<span class='text'>"/"</span>&lt;&lt;denominator&lt;&lt;<span class='text'>"\n"</span>;<br />
</span>}</p>
<p>Fraction Fraction::operator*(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.numerator*numerator);<br />
answerFraction.setDenominator(f.denominator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
Fraction Fraction::operator/(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.denominator*numerator);<br />
answerFraction.setDenominator(f.numerator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
Fraction Fraction::operator+(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.denominator*numerat<span class='keywords';>or </span>+ f.numerator*denominator);<br />
answerFraction.setDenominator(f.denominator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
Fraction Fraction::operator-(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.denominator*numerat<span class='keywords';>or </span>- f.numerator*denominator);<br />
answerFraction.setDenominator(f.denominator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
ostream &#038;operator&lt;&lt;(ostream &#038; cout, <span class='keywords';>const </span>Fraction  &#038;f)<br />
{<span class='indent'><br />
        if(f.denominat<span class='keywords';>or </span>== 1 || f.numerat<span class='keywords';>or </span>== 0)<br />
                         cout&lt;&lt;f.numerator;<br />
        else<br />
                cout&lt;&lt;f.numerator&lt;&lt;<span class='text'>"/"</span>&lt;&lt;f.denominator&lt;&lt;<span class='text'>"\n"</span>;<br />
        <span class='keywords';>return </span>cout;<br />
</span>}<br />
istream &#038;operator&gt;&gt;(istream &#038; cin, Fraction &#038;f)<br />
{<span class='indent'><br />
           cin&gt;&gt;f.numerator;<br />
           cin.ignore();<br />
           cin&gt;&gt;f.denominator;<br />
           <span class='keywords';>return </span>cin;<br />
</span>}<br />
<span class='keywords';>void </span>Fraction::print() const<br />
{<span class='indent'><br />
     cout&lt;&lt;<span class='text'>"The fraction "</span>&lt;&lt;(*this)&lt;&lt;<span class='text'>" is "</span>;<br />
     if(numerator&lt;denominator)<br />
          cout&lt;&lt;<span class='text'>"proper.\n"</span>;<br />
     else<br />
         cout&lt;&lt;<span class='text'>"improper.\n"</span>;<br />
</span>}</p>
<p><a name="PolymorphismI.Fraction1.h" href="#PolymorphismI.TOC">Fraction1.h</a></p>
<p><span class='inclusions'>#ifndef FRACTION_H</span><br />
<span class='inclusions'>#define FRACTION_H</span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>class </span>Fraction<br />
{<span class='indent'><br />
      <span class='keywords';>friend </span>ostream &#038;operator&lt;&lt;(ostream &#038;, <span class='keywords';>const </span>Fraction &#038;);<br />
      <span class='keywords';>friend </span>istream &#038;operator&gt;&gt;(istream &#038;, Fraction &#038;);</p>
<p>public:<br />
Fraction();<br />
Fraction(int, int);<br />
<span class='keywords';>void </span>setNumerator(<span class='keywords';>int </span>);<br />
<span class='keywords';>void </span>setDenominator(<span class='keywords';>int </span>);<br />
<span class='keywords';>int </span>getNumerator();<br />
<span class='keywords';>int </span>getDenominator();<br />
<span class='keywords';>void </span>displayFraction();<br />
Fraction operator*(Fraction );<br />
Fraction operator/(Fraction );<br />
Fraction operator+(Fraction );<br />
Fraction operator-(Fraction );<br />
<span class='keywords';>void </span>print() const;<br />
private:<br />
<span class='keywords';>int </span>numerator;<br />
<span class='keywords';>int </span>denominator;<br />
</span>};<br />
#endif</p>
<p><a name="PolymorphismI.MixedNumber1.cpp" href="#PolymorphismI.TOC">MixedNumber1.cpp</a></p>
<p><span class='inclusions'>#include <span class='text'>"MixedNumber1.h"</span></span><br />
<span class='inclusions'>#include <span class='text'>"Fraction1.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p>MixedNumber::MixedNumber(<span class='keywords';>int </span>w, <span class='keywords';>int </span>n, <span class='keywords';>int </span>d)<br />
:Fraction( n, d)<br />
{<span class='indent'><br />
           setWhole(w);<br />
</span>}<br />
MixedNumber::MixedNumber():Fraction()<br />
{<span class='indent'><br />
                                     <span class='comments'>//Initializes the whole number to 0.</span><br />
                                     whole=0;<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::setWhole(<span class='keywords';>int </span>w)<br />
{<span class='indent'><br />
     whole=w;<br />
</span>}<br />
<span class='keywords';>int </span>MixedNumber::getWhole()<br />
{<span class='indent'><br />
    <span class='keywords';>return </span>whole;<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::displayMixedNumber()<br />
{<span class='indent'><br />
     cout&lt;&lt;whole&lt;&lt;<span class='text'>" "</span>;<br />
<span class='comments'>/*I <span class='keywords';>do </span><span class='keywords';>not </span>need to say &lt;&lt;numerator&lt;&lt;<span class='text'>"/"</span>&lt;&lt;denominator.<br />
We can use displayFraction() from the Fraction class, of which<br />
the current class, MixedFraction, is a subclass. */</span><br />
     displayFraction();<br />
</span>}<br />
MixedNumber MixedNumber::operator*(MixedNumber &#038;m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1*f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
MixedNumber MixedNumber::operator/(MixedNumber &#038; m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1/f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
MixedNumber MixedNumber::operator+(MixedNumber &#038;m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1+f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
MixedNumber MixedNumber::operator-(MixedNumber &#038;m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1-f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
Fraction MixedNumber::mixedNumberToImproperFraction()<br />
{<span class='indent'><br />
         <span class='keywords';>int </span>n;<br />
         n = whole*getDenominator()+getNumerator();<br />
         Fraction f(n,getDenominator());<br />
         <span class='keywords';>return </span>f;<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::fractionToMixedNumber(Fraction &#038;f)<br />
{<span class='indent'><br />
            whole=f.getNumerator()/f.getDenominator();<br />
            <span class='comments'>/* We can<span class='keywords';>not </span>directly access the numerat<span class='keywords';>or </span><span class='keywords';>and </span>denominat<span class='keywords';>or </span>data fields<br />
            of the Fractdion super<span class='keywords';>class </span>objects, which are private.<br />
            We can, however, access their <span class='keywords';>public </span>functdions to access these<br />
            data fields indirectly. */</span><br />
            setNumerator(abs(f.getNumerator()%f.getDenominator()));<br />
            setDenominator(f.getDenominator());<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::print() const<br />
{<span class='indent'><br />
     cout&lt;&lt;<span class='text'>"The mixed number "</span>&lt;&lt;(*this)&lt;&lt;<span class='text'>" is "</span>;<br />
     if(whole==0)<br />
                 cout&lt;&lt;<span class='text'>"a fraction <span class='keywords';>and </span><span class='keywords';>not </span>a mixed number.\n"</span>;<br />
     else<br />
                 cout&lt;&lt;<span class='text'>"indeed a mixed number.\n"</span>;<br />
</span>}</p>
<p><span class='keywords';>void </span>MixedNumber::printMixedNumber()<br />
{<span class='indent'><br />
     cout&lt;&lt;whole&lt;&lt;<span class='text'>" "</span>&lt;&lt;getNumerator()&lt;&lt;<span class='text'>"/"</span>&lt;&lt;getDenominator();<br />
</span>}<br />
ostream &#038;operator&lt;&lt;(ostream &#038;cout, <span class='keywords';>const </span>MixedNumber &#038;m)<br />
{<span class='indent'><br />
        Fraction f=m;<br />
        if(m.whole==0)<br />
                      cout&lt;&lt;f;<br />
        else<br />
        {<span class='indent'><br />
                cout&lt;&lt;m.whole&lt;&lt;<span class='text'>" "</span>;<br />
                if(f.getNumerator()!=0)<br />
                                         cout&lt;&lt;f;<br />
        </span>}<br />
        <span class='keywords';>return </span>cout;<br />
</span>}<br />
istream &#038;operator&gt;&gt;(istream &#038;cin, MixedNumber &#038;m)<br />
{<span class='indent'><br />
        <span class='keywords';>int </span>n, d;<br />
           cin&gt;&gt;m.whole;<br />
           cin.ignore();<br />
           cin&gt;&gt;n;<br />
           cin.ignore();<br />
           cin&gt;&gt;d;<br />
           m.setNumerator(n);<br />
           m.setDenominator(d);<br />
           <span class='keywords';>return </span>cin;<br />
</span>}</p>
<p><a name="PolymorphismI.MixedNumber1.h" href="#PolymorphismI.TOC">MixedNumber1.h</a></p>
<p><span class='inclusions'>#ifndef MIXEDNUMBER_H</span><br />
<span class='inclusions'>#define MIXEDNUMBER_H</span><br />
<span class='inclusions'>#include <span class='text'>"Fraction2.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>class </span>MixedNumber : <span class='keywords';>public </span>Fraction<br />
{<span class='indent'><br />
      <span class='keywords';>friend </span>ostream &#038;operator&lt;&lt;(ostream &#038;, <span class='keywords';>const </span> MixedNumber &#038;);<br />
      <span class='keywords';>friend </span>istream &#038;operator&gt;&gt;(istream &#038;, MixedNumber &#038;);<br />
public:<br />
MixedNumber();<br />
MixedNumber(int, int, int);<br />
<span class='keywords';>void </span>setWhole(<span class='keywords';>int </span>);<br />
<span class='keywords';>int </span>getWhole();<br />
<span class='keywords';>void </span>displayMixedNumber();<br />
MixedNumber operator*(MixedNumber &#038; );<br />
MixedNumber operator/(MixedNumber &#038; );<br />
MixedNumber operator+(MixedNumber &#038; );<br />
MixedNumber operator-(MixedNumber &#038; );<br />
Fraction mixedNumberToImproperFraction();<br />
<span class='keywords';>void </span>fractionToMixedNumber(Fraction &#038;);<br />
<span class='keywords';>void </span>print() const;<br />
<span class='keywords';>void </span>printMixedNumber();<br />
private:<br />
<span class='keywords';>int </span>whole;<br />
</span>};<br />
#endif</p>
<p><a name="PolymorphismI.Main.cpp" href="#PolymorphismI.TOC">Main.cpp</a></p>
<p><span class='inclusions'>#include <span class='text'>"Fraction2.h"</span></span><br />
<span class='inclusions'>#include <span class='text'>"MixedNumber2.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
    Fraction fractionProper(5, 7), fractionImproper(7,5);<br />
    MixedNumber mixed(2, 4, 7), unmixed(0, 4, 9);<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>fraction "</span>&lt;&lt;fractionProper&lt;&lt;<span class='text'>"\n"</span>;<br />
    fractionProper.print();<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>fraction "</span>&lt;&lt;fractionImproper&lt;&lt;<span class='text'>"\n"</span>;<br />
    fractionImproper.print();<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>mixed number "</span>&lt;&lt;mixed&lt;&lt;<span class='text'>"\n"</span>;<br />
    mixed.print();<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>mixed number "</span>&lt;&lt;unmixed&lt;&lt;<span class='text'>"\n"</span>;<br />
    unmixed.print();</p>
<p>    Fraction *fractionPointer;<br />
    MixedNumber *mixedNumberPointer;<br />
    fractionPointer = &#038;fractionProper;<br />
    mixedNumberPointer=&mixed;<br />
    cout&lt;&lt;<span class='text'>"***********************************************************\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"We store a Fraction object's address in a Fraction pointer\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"<span class='keywords';>and </span>a MixedNumber object's address in a MixedNumber pointer\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"fractionPointer-&gt;print();\n"</span>;<br />
    fractionPointer-&gt;print();<br />
    cout&lt;&lt;<span class='text'>"mixedNumberPointer-&gt;print();\n"</span>;<br />
    mixedNumberPointer-&gt;print();<br />
    cout&lt;&lt;<span class='text'>"Everything comes out as expected.\n"</span>;<br />
    <span class='comments'>/*Trying to have a Fraction <span class='keywords';>class </span>(base class) object access a MixedNumber<br />
    function will lead to an error.<br />
    fractionPointer-&gt;printMixedNumber();*/</span><br />
    cout&lt;&lt;<span class='text'>"***********************************************************\n"</span>;<br />
    <span class='comments'>/*A MixedNumber object (derived <span class='keywords';>class </span>object) can be stored in a Fraction address<br />
    (base <span class='keywords';>class </span>object).*/</span><br />
    fractionPointer = &mixed;<br />
    <span class='comments'>/*Trying to store the address of a Fraction <span class='keywords';>class </span>(base class) object in a<br />
    MixedNumber (derived class) pointer yields an error.<br />
    mixedNumberPointer=&#038;fractionProper;    */</span><br />
    cout&lt;&lt;<span class='text'>"We now store a MixedNumber object's address in a Fraction pointer.\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"We can<span class='keywords';>not </span>store a MixedNumber object's address in a Fraction pointer\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"fractionPointer-&gt;print();\n"</span>;<br />
    fractionPointer-&gt;print();<br />
    cout&lt;&lt;<span class='text'>"The MixedNumber stored in the Fraction pointer behaves like a Fraction object!\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"***********************************************************\n"</span>;   </p>
<p>    system(<span class='text'>"pause"</span>);<br />
    <span class='keywords';>return </span>0;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=790</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polymorphism II</title>
		<link>http://www.qlineorientalist.com/CTutorial/?p=782</link>
		<comments>http://www.qlineorientalist.com/CTutorial/?p=782#comments</comments>
		<pubDate>Tue, 16 Nov 2010 01:34:48 +0000</pubDate>
		<dc:creator>C++Tutor</dc:creator>
				<category><![CDATA[Class]]></category>
		<category><![CDATA[Inheritance]]></category>

		<guid isPermaLink="false">http://www.qlineorientalist.com/CTutorial/?p=782</guid>
		<description><![CDATA[Go to File: Fraction2.cpp Fraction2.h MixedNumber2.cpp MixedNumber2.h Main.cpp Fraction2.cpp #include "Fraction2.h" #include &#60;iostream&#62; using namespace std; Fraction::Fraction() { //Initializes fractions to 1/2 by default. numerator=1; denominator=2; } Fraction::Fraction(int n, int d) { setNumerator(n); setDenominator(d); } void Fraction::setNumerator(int input) { numerator=input; } void Fraction::setDenominator(int input) { if(input==0) cout&#60;&#60;"You cannot have zero in the denominator."; denominator=input; } [...]]]></description>
			<content:encoded><![CDATA[<h3><a name="PolymorphismII.TOC">Go to File:</a></h3>
<p><a href="#PolymorphismII.Fraction2.cpp">Fraction2.cpp</a><br />
<a href="#PolymorphismII.Fraction2.h">Fraction2.h</a><br />
<a href="#PolymorphismII.MixedNumber2.cpp">MixedNumber2.cpp</a><br />
<a href="#PolymorphismII.MixedNumber2.h">MixedNumber2.h</a><br />
<a href="#PolymorphismII.Main.cpp">Main.cpp</a></p>
<hr />
<p><a name="PolymorphismII.Fraction2.cpp" href="#PolymorphismII.TOC">Fraction2.cpp</a></p>
<p><span class='inclusions'>#include <span class='text'>"Fraction2.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p>Fraction::Fraction()<br />
{<span class='indent'><br />
                    <span class='comments'>//Initializes fractions to 1/2 by default.</span><br />
                    numerator=1;<br />
                    denominator=2;<br />
</span>}<br />
Fraction::Fraction(<span class='keywords';>int </span>n, <span class='keywords';>int </span>d)<br />
{<span class='indent'><br />
             setNumerator(n);<br />
             setDenominator(d);<br />
</span>}<br />
<span class='keywords';>void </span>Fraction::setNumerator(<span class='keywords';>int </span>input)<br />
{<span class='indent'><br />
numerator=input;<br />
</span>}<br />
<span class='keywords';>void </span>Fraction::setDenominator(<span class='keywords';>int </span>input)<br />
{<span class='indent'><br />
     if(input==0)<br />
                 cout&lt;&lt;<span class='text'>"You can<span class='keywords';>not </span>have zero in the denominator."</span>;<br />
                 denominator=input;<br />
</span>}<br />
<span class='keywords';>int </span>Fraction::getNumerator()<br />
{<span class='indent'><br />
<span class='keywords';>return </span>numerator;<br />
</span>}<br />
<span class='keywords';>int </span>Fraction::getDenominator()<br />
{<span class='indent'><br />
<span class='keywords';>return </span>denominator;<br />
</span>}</p>
<p><span class='keywords';>void </span>Fraction::displayFraction()<br />
{<span class='indent'><br />
cout&lt;&lt;numerator&lt;&lt;<span class='text'>"/"</span>&lt;&lt;denominator&lt;&lt;<span class='text'>"\n"</span>;<br />
</span>}</p>
<p>Fraction Fraction::operator*(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.numerator*numerator);<br />
answerFraction.setDenominator(f.denominator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
Fraction Fraction::operator/(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.denominator*numerator);<br />
answerFraction.setDenominator(f.numerator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
Fraction Fraction::operator+(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.denominator*numerat<span class='keywords';>or </span>+ f.numerator*denominator);<br />
answerFraction.setDenominator(f.denominator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
Fraction Fraction::operator-(Fraction f)<br />
{<span class='indent'><br />
Fraction answerFraction;<br />
answerFraction.setNumerator(f.denominator*numerat<span class='keywords';>or </span>- f.numerator*denominator);<br />
answerFraction.setDenominator(f.denominator*denominator);<br />
<span class='keywords';>return </span>answerFraction;<br />
</span>}<br />
ostream &#038;operator&lt;&lt;(ostream &#038; cout, <span class='keywords';>const </span>Fraction  &#038;f)<br />
{<span class='indent'><br />
        if(f.denominat<span class='keywords';>or </span>== 1 || f.numerat<span class='keywords';>or </span>== 0)<br />
                         cout&lt;&lt;f.numerator;<br />
        else<br />
                cout&lt;&lt;f.numerator&lt;&lt;<span class='text'>"/"</span>&lt;&lt;f.denominator&lt;&lt;<span class='text'>"\n"</span>;<br />
        <span class='keywords';>return </span>cout;<br />
</span>}<br />
istream &#038;operator&gt;&gt;(istream &#038; cin, Fraction &#038;f)<br />
{<span class='indent'><br />
           cin&gt;&gt;f.numerator;<br />
           cin.ignore();<br />
           cin&gt;&gt;f.denominator;<br />
           <span class='keywords';>return </span>cin;<br />
</span>}<br />
<span class='keywords';>void </span>Fraction::print() const<br />
{<span class='indent'><br />
     cout&lt;&lt;<span class='text'>"The fraction "</span>&lt;&lt;(*this)&lt;&lt;<span class='text'>" is "</span>;<br />
     if(numerator&lt;denominator)<br />
          cout&lt;&lt;<span class='text'>"proper.\n"</span>;<br />
     else<br />
         cout&lt;&lt;<span class='text'>"improper.\n"</span>;<br />
</span>}</p>
<p><a name="PolymorphismII.Fraction2.h" href="#PolymorphismII.TOC">Fraction2.h</a></p>
<p><span class='inclusions'>#ifndef FRACTION_H</span><br />
<span class='inclusions'>#define FRACTION_H</span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>class </span>Fraction<br />
{<span class='indent'><br />
      <span class='keywords';>friend </span>ostream &#038;operator&lt;&lt;(ostream &#038;, <span class='keywords';>const </span>Fraction &#038;);<br />
      <span class='keywords';>friend </span>istream &#038;operator&gt;&gt;(istream &#038;, Fraction &#038;);</p>
<p>public:<br />
Fraction();<br />
Fraction(int, int);<br />
<span class='keywords';>void </span>setNumerator(<span class='keywords';>int </span>);<br />
<span class='keywords';>void </span>setDenominator(<span class='keywords';>int </span>);<br />
<span class='keywords';>int </span>getNumerator();<br />
<span class='keywords';>int </span>getDenominator();<br />
<span class='keywords';>void </span>displayFraction();<br />
Fraction operator*(Fraction );<br />
Fraction operator/(Fraction );<br />
Fraction operator+(Fraction );<br />
Fraction operator-(Fraction );<br />
<span class='keywords';>virtual </span><span class='keywords';>void </span>print() const;<br />
private:<br />
<span class='keywords';>int </span>numerator;<br />
<span class='keywords';>int </span>denominator;<br />
</span>};<br />
#endif</p>
<p><a name="PolymorphismII.MixedNumber2.cpp" href="#PolymorphismII.TOC">MixedNumber2.cpp</a></p>
<p><span class='inclusions'>#include <span class='text'>"MixedNumber2.h"</span></span><br />
<span class='inclusions'>#include <span class='text'>"Fraction2.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p>MixedNumber::MixedNumber(<span class='keywords';>int </span>w, <span class='keywords';>int </span>n, <span class='keywords';>int </span>d)<br />
:Fraction( n, d)<br />
{<span class='indent'><br />
           setWhole(w);<br />
</span>}<br />
MixedNumber::MixedNumber():Fraction()<br />
{<span class='indent'><br />
                                     <span class='comments'>//Initializes the whole number to 0.</span><br />
                                     whole=0;<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::setWhole(<span class='keywords';>int </span>w)<br />
{<span class='indent'><br />
     whole=w;<br />
</span>}<br />
<span class='keywords';>int </span>MixedNumber::getWhole()<br />
{<span class='indent'><br />
    <span class='keywords';>return </span>whole;<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::displayMixedNumber()<br />
{<span class='indent'><br />
     cout&lt;&lt;whole&lt;&lt;<span class='text'>" "</span>;<br />
<span class='comments'>/*I <span class='keywords';>do </span><span class='keywords';>not </span>need to say &lt;&lt;numerator&lt;&lt;<span class='text'>"/"</span>&lt;&lt;denominator.<br />
We can use displayFraction() from the Fraction class, of which<br />
the current class, MixedFraction, is a subclass. */</span><br />
     displayFraction();<br />
</span>}<br />
MixedNumber MixedNumber::operator*(MixedNumber &#038;m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1*f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
MixedNumber MixedNumber::operator/(MixedNumber &#038; m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1/f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
MixedNumber MixedNumber::operator+(MixedNumber &#038;m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1+f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
MixedNumber MixedNumber::operator-(MixedNumber &#038;m)<br />
{<span class='indent'><br />
            Fraction f1, f2, f3;<br />
            MixedNumber m1;<br />
            f1=mixedNumberToImproperFraction();<br />
            f2=m.mixedNumberToImproperFraction();<br />
            f3=f1-f2;<br />
            m1.fractionToMixedNumber(f3);<br />
            <span class='keywords';>return </span>m1;<br />
</span>}<br />
Fraction MixedNumber::mixedNumberToImproperFraction()<br />
{<span class='indent'><br />
         <span class='keywords';>int </span>n;<br />
         n = whole*getDenominator()+getNumerator();<br />
         Fraction f(n,getDenominator());<br />
         <span class='keywords';>return </span>f;<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::fractionToMixedNumber(Fraction &#038;f)<br />
{<span class='indent'><br />
            whole=f.getNumerator()/f.getDenominator();<br />
            <span class='comments'>/* We can<span class='keywords';>not </span>directly access the numerat<span class='keywords';>or </span><span class='keywords';>and </span>denominat<span class='keywords';>or </span>data fields<br />
            of the Fractdion super<span class='keywords';>class </span>objects, which are private.<br />
            We can, however, access their <span class='keywords';>public </span>functdions to access these<br />
            data fields indirectly. */</span><br />
            setNumerator(abs(f.getNumerator()%f.getDenominator()));<br />
            setDenominator(f.getDenominator());<br />
</span>}<br />
<span class='keywords';>void </span>MixedNumber::print() const<br />
{<span class='indent'><br />
     cout&lt;&lt;<span class='text'>"The mixed number "</span>&lt;&lt;(*this)&lt;&lt;<span class='text'>" is "</span>;<br />
     if(whole==0)<br />
                 cout&lt;&lt;<span class='text'>"a fraction <span class='keywords';>and </span><span class='keywords';>not </span>a mixed number.\n"</span>;<br />
     else<br />
                 cout&lt;&lt;<span class='text'>"indeed a mixed number.\n"</span>;<br />
</span>}</p>
<p><span class='keywords';>void </span>MixedNumber::printMixedNumber()<br />
{<span class='indent'><br />
     cout&lt;&lt;whole&lt;&lt;<span class='text'>" "</span>&lt;&lt;getNumerator()&lt;&lt;<span class='text'>"/"</span>&lt;&lt;getDenominator();<br />
</span>}<br />
ostream &#038;operator&lt;&lt;(ostream &#038;cout, <span class='keywords';>const </span>MixedNumber &#038;m)<br />
{<span class='indent'><br />
        Fraction f=m;<br />
        if(m.whole==0)<br />
                      cout&lt;&lt;f;<br />
        else<br />
        {<span class='indent'><br />
                cout&lt;&lt;m.whole&lt;&lt;<span class='text'>" "</span>;<br />
                if(f.getNumerator()!=0)<br />
                                         cout&lt;&lt;f;<br />
        </span>}<br />
        <span class='keywords';>return </span>cout;<br />
</span>}<br />
istream &#038;operator&gt;&gt;(istream &#038;cin, MixedNumber &#038;m)<br />
{<span class='indent'><br />
        <span class='keywords';>int </span>n, d;<br />
           cin&gt;&gt;m.whole;<br />
           cin.ignore();<br />
           cin&gt;&gt;n;<br />
           cin.ignore();<br />
           cin&gt;&gt;d;<br />
           m.setNumerator(n);<br />
           m.setDenominator(d);<br />
           <span class='keywords';>return </span>cin;<br />
</span>}</p>
<p><a name="PolymorphismII.MixedNumber2.h" href="#PolymorphismII.TOC">MixedNumber2.h</a></p>
<p><span class='inclusions'>#ifndef MIXEDNUMBER_H</span><br />
<span class='inclusions'>#define MIXEDNUMBER_H</span><br />
<span class='inclusions'>#include <span class='text'>"Fraction2.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>class </span>MixedNumber : <span class='keywords';>public </span>Fraction<br />
{<span class='indent'><br />
      <span class='keywords';>friend </span>ostream &#038;operator&lt;&lt;(ostream &#038;, <span class='keywords';>const </span> MixedNumber &#038;);<br />
      <span class='keywords';>friend </span>istream &#038;operator&gt;&gt;(istream &#038;, MixedNumber &#038;);<br />
public:<br />
MixedNumber();<br />
MixedNumber(int, int, int);<br />
<span class='keywords';>void </span>setWhole(<span class='keywords';>int </span>);<br />
<span class='keywords';>int </span>getWhole();<br />
<span class='keywords';>void </span>displayMixedNumber();<br />
MixedNumber operator*(MixedNumber &#038; );<br />
MixedNumber operator/(MixedNumber &#038; );<br />
MixedNumber operator+(MixedNumber &#038; );<br />
MixedNumber operator-(MixedNumber &#038; );<br />
Fraction mixedNumberToImproperFraction();<br />
<span class='keywords';>void </span>fractionToMixedNumber(Fraction &#038;);<br />
<span class='keywords';>virtual </span><span class='keywords';>void </span>print() const;<br />
<span class='keywords';>void </span>printMixedNumber();<br />
private:<br />
<span class='keywords';>int </span>whole;<br />
</span>};<br />
#endif</p>
<p><a name="PolymorphismII.Main.cpp" href="#PolymorphismII.TOC">Main.cpp</a></p>
<p><span class='inclusions'>#include <span class='text'>"Fraction2.h"</span></span><br />
<span class='inclusions'>#include <span class='text'>"MixedNumber2.h"</span></span><br />
<span class='inclusions'>#include &lt;iostream&gt;</span><br />
<span class='keywords';>using </span><span class='keywords';>namespace </span>std;</p>
<p><span class='keywords';>int </span>main()<br />
{<span class='indent'><br />
    Fraction fractionProper(5, 7), fractionImproper(7,5);<br />
    MixedNumber mixed(2, 4, 7), unmixed(0, 4, 9);<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>fraction "</span>&lt;&lt;fractionProper&lt;&lt;<span class='text'>"\n"</span>;<br />
    fractionProper.print();<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>fraction "</span>&lt;&lt;fractionImproper&lt;&lt;<span class='text'>"\n"</span>;<br />
    fractionImproper.print();<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>mixed number "</span>&lt;&lt;mixed&lt;&lt;<span class='text'>"\n"</span>;<br />
    mixed.print();<br />
    cout&lt;&lt;<span class='text'>"Pr<span class='keywords';>int </span>mixed number "</span>&lt;&lt;unmixed&lt;&lt;<span class='text'>"\n"</span>;<br />
    unmixed.print();</p>
<p>    Fraction *fractionPointer;<br />
    MixedNumber *mixedNumberPointer;<br />
    fractionPointer = &#038;fractionProper;<br />
    mixedNumberPointer=&mixed;<br />
    cout&lt;&lt;<span class='text'>"***********************************************************\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"We store a Fraction object's address in a Fraction pointer\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"<span class='keywords';>and </span>a MixedNumber object's address in a MixedNumber pointer\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"fractionPointer-&gt;print();\n"</span>;<br />
    fractionPointer-&gt;print();<br />
    cout&lt;&lt;<span class='text'>"mixedNumberPointer-&gt;print();\n"</span>;<br />
    mixedNumberPointer-&gt;print();<br />
    cout&lt;&lt;<span class='text'>"Everything comes out as expected.\n"</span>;<br />
    <span class='comments'>/*Trying to have a Fraction <span class='keywords';>class </span>(base class) object access a MixedNumber<br />
    function will lead to an error.<br />
    fractionPointer-&gt;printMixedNumber();*/</span><br />
    cout&lt;&lt;<span class='text'>"***********************************************************\n"</span>;<br />
    <span class='comments'>/*A MixedNumber object (derived <span class='keywords';>class </span>object) can be stored in a Fraction address<br />
    (base <span class='keywords';>class </span>object).*/</span><br />
    fractionPointer = &mixed;<br />
    <span class='comments'>/*Trying to store the address of a Fraction <span class='keywords';>class </span>(base class) object in a<br />
    MixedNumber (derived class) pointer yields an error.<br />
    mixedNumberPointer=&#038;fractionProper;    */</span><br />
    cout&lt;&lt;<span class='text'>"We now store a MixedNumber object's address in a Fraction pointer.\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"We can<span class='keywords';>not </span>store a MixedNumber object's address in a Fraction pointer\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"fractionPointer-&gt;print();\n"</span>;<br />
    fractionPointer-&gt;print();<br />
    cout&lt;&lt;<span class='text'>"The MixedNumber stored in the Fraction pointer behaves like a MixedNumber object!\n"</span>;<br />
    cout&lt;&lt;<span class='text'>"***********************************************************\n"</span>;   </p>
<p>    system(<span class='text'>"pause"</span>);<br />
    <span class='keywords';>return </span>0;<br />
</span>}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qlineorientalist.com/CTutorial/?feed=rss2&#038;p=782</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

