有如下程序: #include using narnespace std; class Date{ public: Date(int Y=2014,int m=9,int d=9):year(y),month(m),

admin2020-12-21  31

问题 有如下程序:
    #include
    using narnespace 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.vear<<‘.’<<ddd.month<<‘.’<<ddd.day;
    return stream;
    }
    private:
    int year,month,day;
    };
    int main(){
    Date GoodDay;
    cout<<GoodDay<<endl;
    return0;
    }
    若运行时的输出结果是“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/sOyp777K
0

最新回复(0)