Board logo

标题: 提问,关于第16章16.7.1的光盘源代码 [打印本页]

作者: ch4534    时间: 2011-5-26 17:07     标题: 提问,关于第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

希望高手能够解答这到底是哪里有问题了?
谢谢!!!
作者: fwbook    时间: 2011-5-27 09:18

你好。这是哪本书的代码?
作者: fwbook    时间: 2011-5-27 09:19

按照错误提示,是<<有运算歧义。
作者: ch4534    时间: 2011-5-30 12:16

这是c++入门到实践的树上的




欢迎光临 万卷图书 (http://wanjuanchina.net/) Powered by Discuz! 7.0.0