<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: 9.3 &#8212; Overloading the I/O operators</title>
	<atom:link href="http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/</link>
	<description></description>
	<lastBuildDate>Tue, 07 Feb 2012 12:30:29 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: sw1983</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-95217</link>
		<dc:creator>sw1983</dc:creator>
		<pubDate>Mon, 28 Feb 2011 11:47:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-95217</guid>
		<description>Nevermind I&#039;d forgotten to use the namespace. haha, kick myself.</description>
		<content:encoded><![CDATA[<p>Nevermind I&#8217;d forgotten to use the namespace. haha, kick myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sw1983</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-95216</link>
		<dc:creator>sw1983</dc:creator>
		<pubDate>Mon, 28 Feb 2011 09:48:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-95216</guid>
		<description>Hello, my compiler (visual c++ 2010) will not recognise ostream. It is saying it is an undeclared identifier. I&#039;ve double checked and ostream is in the iostream library, I&#039;ve included iostream. I thought it was something I was doing but I have copied and pasted Alex&#039;s code into my program and still I get the same error. What am I missing? I haven&#039;t written the function yet because the syntax gets underlined in red so I know it won&#039;t compile anyway.

&lt;code&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

class Employee
{
private:
	static int  sm_nID;
	int			m_nID ;
	char		m_strName[25];
	double		m_dWage;	

public:
	Employee(char *strName=&quot;Blank&quot;, double dWage=10.00)
	{
		using namespace std;
		strncpy_s(m_strName, strName, 25);
		m_nID = ++sm_nID;
		m_dWage = dWage;
	}

	char* GetName()
	{
		return m_strName;
	}

	int GetID()
	{
		return m_nID;
	}

	double GetWage()
	{
		return m_dWage;
	}

	void Print()
	{
		using namespace std;
		cout &lt;&lt; &quot;Name: &quot; &lt;&lt; m_strName &lt;&lt; &quot;\t&quot; &lt;&lt; &quot;Employee ID: &quot; &lt;&lt; m_nID &lt;&lt; &quot;\t&quot; &lt;&lt; 
			&quot;Wage: &quot; &lt;&lt; m_dWage &lt;&lt; &quot;\n&quot;;
	}

	static void PrintID()
	{
		std::cout &lt;&lt; sm_nID;
	}

	friend void ResetName(Employee &amp;cEmployee);
	friend class FriendOfMine;
	/****************************HERE**************************************************/
        friend ostream&amp; operator&lt;&lt; (ostream &amp;out, Employee &amp;cEmployee);
};

/****************************HERE**************************************************/

ostream&amp; operator&lt;&lt; (ostream &amp;out, Employee &amp;cEmployee)
{
	
}

int Employee::sm_nID = 0;

void ResetName(Employee &amp;cEmployee)
{
	strncpy(cEmployee.m_strName, &quot;Reset&quot;, 25);
}

class FriendOfMine
{
public:
	void WageChange(Employee &amp;cEmployee)
	{
		cEmployee.m_dWage = 5;
	}
};

int main()
{
	
	return 0;
}
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Hello, my compiler (visual c++ 2010) will not recognise ostream. It is saying it is an undeclared identifier. I&#8217;ve double checked and ostream is in the iostream library, I&#8217;ve included iostream. I thought it was something I was doing but I have copied and pasted Alex&#8217;s code into my program and still I get the same error. What am I missing? I haven&#8217;t written the function yet because the syntax gets underlined in red so I know it won&#8217;t compile anyway.</p>
<p><code><br />
#include &lt;iostream&gt;<br />
#include &lt;string&gt;</p>
<p>class Employee<br />
{<br />
private:<br />
	static int  sm_nID;<br />
	int			m_nID ;<br />
	char		m_strName[25];<br />
	double		m_dWage;	</p>
<p>public:<br />
	Employee(char *strName=&quot;Blank&quot;, double dWage=10.00)<br />
	{<br />
		using namespace std;<br />
		strncpy_s(m_strName, strName, 25);<br />
		m_nID = ++sm_nID;<br />
		m_dWage = dWage;<br />
	}</p>
<p>	char* GetName()<br />
	{<br />
		return m_strName;<br />
	}</p>
<p>	int GetID()<br />
	{<br />
		return m_nID;<br />
	}</p>
<p>	double GetWage()<br />
	{<br />
		return m_dWage;<br />
	}</p>
<p>	void Print()<br />
	{<br />
		using namespace std;<br />
		cout &lt;&lt; &quot;Name: &quot; &lt;&lt; m_strName &lt;&lt; &quot;\t&quot; &lt;&lt; &quot;Employee ID: &quot; &lt;&lt; m_nID &lt;&lt; &quot;\t&quot; &lt;&lt;<br />
			&quot;Wage: &quot; &lt;&lt; m_dWage &lt;&lt; &quot;\n&quot;;<br />
	}</p>
<p>	static void PrintID()<br />
	{<br />
		std::cout &lt;&lt; sm_nID;<br />
	}</p>
<p>	friend void ResetName(Employee &amp;cEmployee);<br />
	friend class FriendOfMine;<br />
	/****************************HERE**************************************************/<br />
        friend ostream&amp; operator&lt;&lt; (ostream &amp;out, Employee &amp;cEmployee);<br />
};</p>
<p>/****************************HERE**************************************************/</p>
<p>ostream&amp; operator&lt;&lt; (ostream &amp;out, Employee &amp;cEmployee)<br />
{</p>
<p>}</p>
<p>int Employee::sm_nID = 0;</p>
<p>void ResetName(Employee &amp;cEmployee)<br />
{<br />
	strncpy(cEmployee.m_strName, &quot;Reset&quot;, 25);<br />
}</p>
<p>class FriendOfMine<br />
{<br />
public:<br />
	void WageChange(Employee &amp;cEmployee)<br />
	{<br />
		cEmployee.m_dWage = 5;<br />
	}<br />
};</p>
<p>int main()<br />
{</p>
<p>	return 0;<br />
}<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: C++ output setf:: notes &#171; Petr Stepanov&#039;s Blog</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-95167</link>
		<dc:creator>C++ output setf:: notes &#171; Petr Stepanov&#039;s Blog</dc:creator>
		<pubDate>Wed, 09 Feb 2011 08:48:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-95167</guid>
		<description>[...] insertion operations for all of the built-in data types, and you&#8217;ve already seen how you can overload the insertion operator for your own [...]</description>
		<content:encoded><![CDATA[<p>[...] insertion operations for all of the built-in data types, and you&#8217;ve already seen how you can overload the insertion operator for your own [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rebelsoul</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-95090</link>
		<dc:creator>rebelsoul</dc:creator>
		<pubDate>Wed, 05 Jan 2011 23:30:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-95090</guid>
		<description>Hello Alex,
Thank you for such a good tutorial. I am facing a problem while running the above given code. I am using visual studio 2008, following your code and same input. However in result only the first input variable value is printed the rest are discarded.
Here is a extract after debug. 
&lt;b&gt;cPoint	{m_dX=6.0000000000000000 m_dY=0.00000000000000000 m_dZ=0.00000000000000000 	
&lt;/b&gt;

Could you please guide, why the program is not taking all the value?</description>
		<content:encoded><![CDATA[<p>Hello Alex,<br />
Thank you for such a good tutorial. I am facing a problem while running the above given code. I am using visual studio 2008, following your code and same input. However in result only the first input variable value is printed the rest are discarded.<br />
Here is a extract after debug.<br />
<b>cPoint	{m_dX=6.0000000000000000 m_dY=0.00000000000000000 m_dZ=0.00000000000000000<br />
</b></p>
<p>Could you please guide, why the program is not taking all the value?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ARVIND</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-95068</link>
		<dc:creator>ARVIND</dc:creator>
		<pubDate>Wed, 22 Dec 2010 16:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-95068</guid>
		<description>While overloading output stream operator &lt;&lt; as member member function I am getting following error:

ostreamOprt.cpp:32: error: no match for &#039;operator&lt;&lt;&#039; in &#039;std::cout &lt;&lt; objs&#039;
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:63: note: candidates are: std::basic_ostream&amp; std::basic_ostream
::operator&lt;&lt;(std::basic_ostream&amp;(*)(std::basic_ostream&amp;)) [with _CharT = char, _Traits = std:
:char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:74: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(std::basic_ios&amp;(*)(std::basic_ios&amp;)) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:86: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(std::ios_base&amp;(*)(std::ios_base&amp;)) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:121: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:155: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long unsigned int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:98: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(bool) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:178: note:  std::basic_ostream&amp; std::basic_ostream::oper
ator&lt;&lt;(short int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:189: note:  std::basic_ostream&amp; std::basic_ostream::oper
ator&lt;&lt;(short unsigned int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:193: note:  std::basic_ostream&amp; std::basic_ostream::oper
ator&lt;&lt;(int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:204: note:  std::basic_ostream&amp; std::basic_ostream::oper
ator&lt;&lt;(unsigned int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:179: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long long int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:214: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long long unsigned int) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:238: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(double) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:219: note:  std::basic_ostream&amp; std::basic_ostream::oper
ator&lt;&lt;(float) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:261: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long double) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:284: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(const void*) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:307: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(std::basic_streambuf*) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:449: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, char) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:505: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream
&amp;, char) [with _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:460: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, signed char) [with _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:465: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, unsigned char) [with _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:567: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostre
am&amp;, const char*) [with _CharT = char, _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:612: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream
&amp;, const char*) [with _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:499: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, const signed char*) [with _Traits = std::char_traits]
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:504: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, const unsigned char*) [with _Traits = std::char_traits]

Alex can you please explain why?</description>
		<content:encoded><![CDATA[<p>While overloading output stream operator &lt;&lt; as member member function I am getting following error:</p>
<p>ostreamOprt.cpp:32: error: no match for &#039;operator&lt;&lt;&#039; in &#039;std::cout &lt;&lt; objs&#039;<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:63: note: candidates are: std::basic_ostream&amp; std::basic_ostream<br />
::operator&lt;&lt;(std::basic_ostream&amp;(*)(std::basic_ostream&amp;)) [with _CharT = char, _Traits = std:<br />
:char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:74: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(std::basic_ios&amp;(*)(std::basic_ios&amp;)) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:86: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(std::ios_base&amp;(*)(std::ios_base&amp;)) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:121: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:155: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long unsigned int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:98: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(bool) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:178: note:  std::basic_ostream&amp; std::basic_ostream::oper<br />
ator&lt;&lt;(short int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:189: note:  std::basic_ostream&amp; std::basic_ostream::oper<br />
ator&lt;&lt;(short unsigned int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:193: note:  std::basic_ostream&amp; std::basic_ostream::oper<br />
ator&lt;&lt;(int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:204: note:  std::basic_ostream&amp; std::basic_ostream::oper<br />
ator&lt;&lt;(unsigned int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:179: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long long int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:214: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long long unsigned int) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:238: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(double) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:219: note:  std::basic_ostream&amp; std::basic_ostream::oper<br />
ator&lt;&lt;(float) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:261: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(long double) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:284: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(const void*) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:307: note:  std::basic_ostream&amp; std::basic_ostream::operator&lt;&lt;(std::basic_streambuf*) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:449: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, char) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:505: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream<br />
&amp;, char) [with _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:460: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, signed char) [with _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:465: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, unsigned char) [with _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:567: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostre<br />
am&amp;, const char*) [with _CharT = char, _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ostream.tcc:612: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream<br />
&amp;, const char*) [with _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:499: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, const signed char*) [with _Traits = std::char_traits]<br />
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:504: note:  std::basic_ostream&amp; std::operator&lt;&lt;(std::basic_ostream&amp;, const unsigned char*) [with _Traits = std::char_traits]</p>
<p>Alex can you please explain why?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gammerz</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-89978</link>
		<dc:creator>Gammerz</dc:creator>
		<pubDate>Tue, 10 Aug 2010 13:22:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-89978</guid>
		<description>Alex replied to this above:-

&lt;cite&gt;Since ostream is a class, ostream&amp; is a reference to an ostream class. Note that we’re also taking an ostream&amp; as a parameter. ostream is typically passed by reference because we don’t want to make a copy of it as we pass it around.&lt;/cite&gt;</description>
		<content:encoded><![CDATA[<p>Alex replied to this above:-</p>
<p><cite>Since ostream is a class, ostream&amp; is a reference to an ostream class. Note that we’re also taking an ostream&amp; as a parameter. ostream is typically passed by reference because we don’t want to make a copy of it as we pass it around.</cite></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gammerz</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-89926</link>
		<dc:creator>Gammerz</dc:creator>
		<pubDate>Mon, 09 Aug 2010 15:02:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-89926</guid>
		<description>When the operator&lt;&lt; function becomes a friend of class Point, it allows us direct access to the member variables m_dX, m_dY and m_dZ. We could avoid making the operator&lt;&lt; a friend of the class Point and instead use member functions GetX(), GetY() and GetZ(), for improved encapsulation. Is this example purely to demonstrate the use of the &quot;friend&quot; command or are we saying this is a preferred method?</description>
		<content:encoded><![CDATA[<p>When the operator&lt;&lt; function becomes a friend of class Point, it allows us direct access to the member variables m_dX, m_dY and m_dZ. We could avoid making the operator&lt;&lt; a friend of the class Point and instead use member functions GetX(), GetY() and GetZ(), for improved encapsulation. Is this example purely to demonstrate the use of the &quot;friend&quot; command or are we saying this is a preferred method?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: saini</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-85656</link>
		<dc:creator>saini</dc:creator>
		<pubDate>Mon, 31 May 2010 05:43:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-85656</guid>
		<description>&lt;pre&gt;would anyone help to understand me why are we passing both the arguments as a reference,and what will happen if we pass them as  value parameters&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<pre>would anyone help to understand me why are we passing both the arguments as a reference,and what will happen if we pass them as  value parameters</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: saini</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-85655</link>
		<dc:creator>saini</dc:creator>
		<pubDate>Mon, 31 May 2010 05:39:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-85655</guid>
		<description>hi
would anyone help me to understand that why are we  passing both the arguments as a reference and what will happen if we pass them as a value parameter</description>
		<content:encoded><![CDATA[<p>hi<br />
would anyone help me to understand that why are we  passing both the arguments as a reference and what will happen if we pass them as a value parameter</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: awa</title>
		<link>http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/comment-page-1/#comment-82158</link>
		<dc:creator>awa</dc:creator>
		<pubDate>Thu, 01 Apr 2010 05:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/#comment-82158</guid>
		<description>#include 
using namespace std;

int x = 11;

int&amp; ref()
	{
	return x;
	}

int main()
	{
	int *ptr = &amp;ref();  //after the return by reference
                      //takes place, &amp;ref() is &amp;x

	*ptr = 12;
	cout &lt; &lt; x &lt;&lt; endl;

	return 0;
	}</description>
		<content:encoded><![CDATA[<p>#include<br />
using namespace std;</p>
<p>int x = 11;</p>
<p>int&amp; ref()<br />
	{<br />
	return x;<br />
	}</p>
<p>int main()<br />
	{<br />
	int *ptr = &amp;ref();  //after the return by reference<br />
                      //takes place, &amp;ref() is &amp;x</p>
<p>	*ptr = 12;<br />
	cout &lt; &lt; x &lt;&lt; endl;</p>
<p>	return 0;<br />
	}</p>
]]></content:encoded>
	</item>
</channel>
</rss>

