在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。 include usin在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。include <iostream>using namespace std;class Date{public:Date(int m=1,int y=0):month(m),year(y){}void Print( ){cout<<month<<"/"<<year<<endl;}(9) operator+(const Date&dl,c

题目
在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。 include usin

在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。

include <iostream>

using namespace std;

class Date{

public:

Date(int m=1,int y=0):month(m),year(y){}

void Print( ){cout<<month<<"/"<<year<<endl;}

(9) operator+(const Date&dl,const Date& d2);

private:

int month,year;

};

(10) operator+(const Date& dl,const Date& d2){

int year,month;

year=d1.year+d2.year;

month=d1.month+d2.month;

year+=(month-1)/12;

month=(month-1)%12+1;

return Date(month,year);

}

void main( ){

Date dl(3,2004),d2,d3(10);

d2=d3+dl;

d2.Print( );

}


相似考题
参考答案和解析
正确答案:friend:Date Date
friend:Date Date 解析:因为重载函数后面有两个形参,“+”运算符是二元运算符,故将“+”运算符重载为友元函数,重载为友元函数的一般格式为:
niend函数类型operator运算符(形参表){函数体}
更多“在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。 include <iostream> usin ”相关问题
  • 第1题:

    在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。 include using

    在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。

    include <iostream>

    using namespace std;

    class A{

    public:A( ){cout<<'A';}

    };

    class B: (11) {

    public:B( ){cout<<'B';}

    {;

    class C: (12) {

    public:C( ){cout<<'C';}

    };

    class D:public B,public C{

    public:D( ){cout<<'D';}

    };

    void main( ){

    D( );

    cout<<endl;

    }


    正确答案:public A 空格
    public A 空格 解析:考查在继承中构造函数的调用顺序,创建派生类对象时依次调用基类的构造函数,最后调用派生类的构造函数。考查在继承中构造函数的调用顺序,创建派生类对象时依次调用基类的构造函数,最后调用派生类的构造函数。

  • 第2题:

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 include usingn

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。

    include <iostream.h>

    using namespace std;

    class A

    {

    public: A() {cout<<'A';

    };

    class B:______

    {

    public: B() {cout<<'B';}

    };

    class C:______

    {

    public: C(} cout<<'C';}

    };

    class D:public B, public C

    {

    public: D(){cout<<'D';}

    };

    void main(){D obj;}


    正确答案:virtual public A; visual public A
    virtual public A; visual public A 解析:本题考核虚基类的应用。通过虚基类所派生的类,在所产生的对象中,只包含了一个和其他类共享的基础对象,也就是说,从同一个基类中以虚拟方式派生的所有类,在它们所产生的对象里,不会有一份基础对象,而只是在内存里保留一份基础对象,而派生类中只保留指向此基础对象的指针,这样就千会同时有两份基类对象的情形发生。题中程序最后字符A只输出了一次,所以类A必须为类 B和类C的虚基类。

  • 第3题:

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 include using nam

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。

    include<iostream>

    using namespace std;

    class A

    {

    public: A(){cout<<'A';}

    };

    class B:【 】

    {

    public:B(){cout<<'B';)

    };

    class C:【 】

    {

    public;C(){cout<<'C';}

    };

    class D:public B,public C

    {

    public:D(){cout<<'D';}

    };

    void main(){D obi;}


    正确答案:virtual public A virtual public A
    virtual public A virtual public A

  • 第4题:

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为1/2005。includeusing n

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为1/2005。

    include <iostream.h>

    using namespace std:

    class Date

    public:

    Date (int m=1,int y=0):month(m .year(y}{}

    void Print() {cout<<month<<"/"<<year<<end1;}

    ______operator+(const Date& d1,const Date&d2;

    private:

    int month year;

    };

    ______operaror+(const Date&d1,const Date& d2)

    int year, month;

    year=d1.year+d2.year;

    month=d1.month+d2.month;

    year+=(month-1)/12;

    month=(month-1)%12+l;

    return Date{month, year}:

    }

    void main()

    {

    Date d1(3,2004),d2,d3(10);

    d2=d3+d1;

    d2.Print();

    }


    正确答案:friend Date; Date
    friend Date; Date 解析:本题考核类与对象、运算符的重载。题中运算“+”重载函数中的参数表中有两个参数,所以是作为友元函数重载(因为“+”是一个二元运算符,作为成员函数重载时参数表中只有一个参数,对应于第二个参数,而第一个操作数就是对象本身,仅以this指针的形式隐藏在参数表中),实现的功能是将参数对象中的成员变量month、year的进行对应相加,实现年月的相加-题中运算符重载函数的返回值的类型是类Date,所以第一个空格处填入"friend Date"。第二个空格处完善运算符重载函数的定义,缺少的是函数返回值的类型“Date”

  • 第5题:

    在下面的程序的横线处填上适当的语句,使该程序的输出结果为12。include using namespac

    在下面的程序的横线处填上适当的语句,使该程序的输出结果为12。

    include<iostream>

    using namespace std;

    class TestClass

    {

    public:

    int a,b;

    TestClass(int i,int j)

    {

    a=i;

    b=j;

    }

    };

    class TestCla


    正确答案:coutTestClass∷a
    coutTestClass∷a 解析: 题目中程序TestClass为基类,TestClass1为派生类,在主函数中定义TestClass1对象d(1)。据题目要求“输出基类数据成员a的值”,基类为TestClass,利用∷域运算符取其成员a的值。