• 使用VC6打开考生文件夹下的工程test37_3。此工程包含一个test37_3.cpp,其中定义了类Letter和Number以及Grid,其中Grid类由Letter类和Number类public派生,但三个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
    (1)添加类Letter的带一个参数c的构造函数,c是char型的数据,默认值为'A',该函数把参数c的值赋给类的保护成员ch,请在注释“//**1**”之后添加适当的语句。
    (2)添加类Number的带一个参数n的构造函数,n是int型的数据,默认值为0,该函数把参数n的值赋给类的保护成员num,请在注释“//**2**”之后添加适当的语句。
    (3)添加派生类Grid构造函数的定义,传入的参数为char型的c和血型的n,并将其分别赋值给基类的ch和num,请在注释“//**3**”之后添加适当的语句。
    (4)完成派生类Grid的友元函数——“<<”运算符重载的定义,使其以格式“[g.ch,g.num]”输出,请在注释“//**4 **”之后添加适当的语句。
    源程序文件test37_3.cpp清单如下:
    include<iost ream. h>
    class Letter
    {
    protected:
    char ch;
    public:
    // ** 1 **
    };
    class Number
    {
    protected:
    int num;
    public:
    // ** 2 **
    };
    class Grid : public Letter, public Number
    {
    public:
    // ** 3 **
    friend ostream& operator<<(ostream &o,Grid &g);
    };
    // ** 4 **
    {
    o << "[" << g.ch << ", "<< g.num << "]";
    return o;
    }
    int main ( )
    {
    Grid g('C', 3);
    cout << "Grid reference: "<< g << end1;
    return 0;
    }

    正确答案:(1)     Letter(char c='A'){ch=c;}(2)     Number(int n=0){num=n;}(3)     Grid(char c='A'int n=0):Letter(c)Number(n){}(4)     ostream &operator(ostream &oGrid &g)(1)     Letter(char c='A'){ch=c;}(2)     Number(int n=0){num=n;}(3)     Grid(char c='A',i
  • 2021年07月14日 22时11分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网