Using Classes - Error Problems

Oct 6, 2012 at 12:01am
I am overloading another operator and am getting an error message that I understand, it's message is clear, but I am not sure how to remedy the issue.

Here is the error:

In function `std::ostream& operator<<(std::ostream&, const Results&)':
175: error: redefinition of `std::ostream& operator<<(std::ostream&, const Results&)'
167: error: `std::ostream& operator<<(std::ostream&, const Results&)' previously defined here


Code in header file for both operators I am overloading. These are not members of the class:
1
2
ostream &operator<< (ostream &out, const Results &WR);
ostream &operator<< (ostream &out, const Results &WL);


Code in .cpp file:
1
2
3
4
5
6
7
8
9
//*************************operator<<******************************************

/*175*/	ostream &operator<< (ostream &out, const Results &WL) {
   		out << setw(15) << "WORDS: " << setw(15) << "COUNT: " << endl;
     		}
   		
		return(out);

	}


I tried using other names within the .cpp file and it has a fit saying that I can't use it because it's type isn't declared - or something to that effect.

Any suggestions would be much appreciated.

Last edited on Nov 2, 2012 at 5:16pm
Oct 6, 2012 at 12:04am
You are saying that the error measage is clear then why did you define the operator twice?!
Last edited on Oct 6, 2012 at 12:05am
Oct 6, 2012 at 12:09am
Our instructor told us to do it this way - he gave us the code for both operators.
Oct 6, 2012 at 12:17am
@vlad
I see your point though - in other words - I can get it to work if I just get rid of the last operator function. I just wondered if there is some way to use both; that I am somehow not understanding/figuring it out?
Last edited on Oct 6, 2012 at 12:17am
Oct 6, 2012 at 9:23am
To overload something, you need to have different combinations of parameter types. This is so the compiler can tell which one to use.

I am not sure whether you knew that already.
Nov 2, 2012 at 5:14pm
I finally understood what both of you were saying - it was simply a matter of giving the second one a different name.
 
ostream &operator<< (ostream &out, const WordList &WL);
Topic archived. No new replies allowed.