Ambiguous Operator Error

Question:
My small program (see below) below compiles and runs correctly on one machine and generates the following error on another:

'operator <<' is ambiguous

Both computers are running Windows NT 4 Service Pack 4, Microsoft Visual Studio C++ v.6.

Could you please tell me where the source of this problem could be?

Tools | Options | Directories Tab and
Tools | Options | Help System Tab of MS Visual C++ Studio have the same settings on both computers.

 */#include #include #include using namespace std;class Event{   friend ostream &operator<<(ostream &,                               const Event & );public:   Event(int , int , int);   bool operator<(const Event & ) const;private:   int eT;   int pT;   int type;};Event::Event(int e, int p, int t){   eT=e;   pT=p;   type=t;}bool Event::operator<(const Event &e) const {   if(eT pq;   pq.push(e1);   pq.push(e2);   while(!pq.empty())   {      cout<error C2248: 'eT' : cannot access private member declared in class'Event'see declaration of 'eT'error C2248: 'pT' : cannot access private member declared in class'Event'

Answer:
Your code is fine. The first release of VC++ 6 had several bugs with handling friend functions. These bugs were fixed in the VC++ Service Packs that came later. I recommend that you install the latest VC++ 6 Service Pack on the machine where the compilation errors occur. This should solve the problem.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: