Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Beginner
Dec 23, 1999

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.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap