返回列表 回复 发帖

提问,关于第16章16.7.1的光盘源代码

在光盘上,有书上的一些源代码,但是16.7.1的源代码,光盘上的源代码如下:
#include <stdafx.h>
#include <iostream>
#include <string>
using namespace std;
class CDate{                                                        //日期类
public:
        CDate(int y=2008,int m=9,int d=10);                //带默认参数
        CDate operator +(const int &i);                        //加运算重载
        friend ostream &operator <<(ostream& output,CDate & date);        //友元
public:
    int year,month,day;
};
//day属性的加运算
CDate CDate::operator +(const int &i)
{
        CDate cd;
        cd.year=year;
        cd.month=month;
        cd.day=day+i;
        return cd;
}
//流输出
ostream& operator <<(ostream& output,CDate & date)
{
        string str;
        char ch[10];
        str.assign(itoa(date.year,ch,10));
        str.append("/");
        str.append(itoa(date.month,ch,10));
        str.append("/");
        str.append(itoa(date.day,ch,10));
        return output<<str<<endl;
}
CDate::CDate(int y,int m,int d)
{
        year=y;
        month=m;
        day=d;
}
int main(void)
{
        CDate date(1999,9,9);
        cout<<date;                        //重载的输出流
        date=date+10;                        //重载加运算
        cout<<date;                        //重载的输出流
        return 0;
}
但是在编译的同时提示有问题:
e:\第16章\ch16_9\ch16_9.cpp(43) : error C2593: 'operator <<' is ambiguous
e:\第16章\ch16_9\ch16_9.cpp(45) : error C2593: 'operator <<' is ambiguous

希望高手能够解答这到底是哪里有问题了?
谢谢!!!
你好。这是哪本书的代码?
按照错误提示,是<<有运算歧义。
这是c++入门到实践的树上的
返回列表