有如下程序: #include<iostream> using namespace std; class Date{ public: Date(int y=2014,int m=9,int d=9):year(y),

admin2021-02-22  11

问题 有如下程序:
    #include<iostream>
    using namespace std;
    class Date{
    public:
    Date(int y=2014,int m=9,int d=9):year(y),month(m),day(d){ }
    ___________(ostream&stream,Date&ddd){//运算符<<的定义
    stream<<ddd.year<<’.’<<ddd.month<<’.’<<ddd.day:
    return stream;
    }
    private:
    int year,month,day;
    };
    int main( ){
    Date GoodDay;
    cout<<GoodDay<<end1:
    return 0;
    }
    若运行时的输出结果是“2014.9.9”,横线处的内容应为(    )。

选项 A、istream&operator<<
B、ostream&operator<<
C、friend istream&operator<<
D、friend ostream&operator<<

答案D

解析 题意中Date类重载了插入运算符<<,其中第一个参数是输出流对象的形参引用,第二个参数是Date类对象的引用;由重载函数的返回值可知,返回类型也是输出流对象的引用,选项A、C错误;另外由于main( )函数中调用重载的插入运算符时:cout<<(GoodDay,第一个参数是cout,第二个参数是GoodDay,可知重载函数的两个参数都有实参传入,不存在隐式参数,所以该重载函数不是成员函数,而只能是类Date的友元函数,选项B错误,选项D正确。
转载请注明原文地址:https://kaotiyun.com/show/m2fp777K
0

最新回复(0)