运算符重载困惑
我照着书上写了个类,其中用到了输出流重载,跟书上写的一样,但运行起来就是有错误,不知道是我的程序写的有问题还是因为VC和borlandC的差异导致的。我用的是VC,书上用的是borlandC++。运行时提示,<<符是ambiguous模拟两可的。#include<iostream>
using namespace std;
class Date {
public:
int year,month,day;
public:
int yearo() {return year;}
int montho() {return month;}
int dayo() {return day;}
void set(int,int,int);
void add();
bool isrun();
friend ostream& operator<<(ostream&,const Date&);
};
void Date::set(int y,int m,int d) {
year=y;month=m;day=d;}
ostream& operator<< (ostream& out,const Date& da) {
return out<<da.year<<"-"<<da.month<<"-"<<"-"<<da.day<<endl;}
bool Date::isrun() {
if(year%4==0 && year%100!=0 || year%400==0) return true;
return false;}
int main() {
Date daa;
int y,m,d;
cout<<"please input the date "<<endl;
cin>>y>>m>>d;
daa.set(y,m,d);
cout<<daa;
return 0;
}