怎么总是遇见这种问题?这次又是怎么回事?
#include <iostream>
using namespace std;
class my{
int i;
public:
my(int ii):i(ii){}
const my operator+(const my &b)const
{return my(i+b.i);}
const my operator-(const my &b)const
{return my(i-b.i);}
void print(ostream& os)
{os<<i<<endl;}
};
void main()
{ostream myos(cout);
my a(1);my b(2);my c(3);
my result=a+b-c;
result.print(myos);
}
这个没问题
#include <iostream.h>
class my{
int i;
public:
my(int ii):i(ii){}
friend const my operator+(const my &b,const my &c)const
{ return my(c.i+b.i);
}
friend const my operator-(const my &b,const my &c) const
{ return my(c.i-b.i);
}
void print(ostream& os)
{os<<i<<endl;}
};
void main()
{my a(1);my b(2);my c(3);
my result=a+b-c;
result.print(cout);
}
这个就不对,这次这两个友元为什么不能是const??