使用VC6打开考生文件夹下的源程序文件modi.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。 程序输出: s1:n=20 s2:n=10 执行s3.add(s1,s2) s3:n=30 s

admin2020-06-29  7

问题 使用VC6打开考生文件夹下的源程序文件modi.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。
    程序输出:
    s1:n=20
    s2:n=10
    执行s3.add(s1,s2)
    s3:n=30
    s4:n=30
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
    1    #include
    2    class TestClass
    3    {
    4    int n;
    5    public:
    6     TestClass(){)
    7    TestCla8s(int m)
    8    {
    9    n=m;
    10    }
    11    //********error********
    12 TestClass add(TestClass s1,s2)
    13    {
    14 this->n=s1.n+s2.n;
    15
    //********error********
    16    return(this);
    17    }
    18    void di sp()
    19    {
    20    cout<<"n="<    21    )
    22    //********error********
    23  }
    24    void main()
    25    {
    26    TestClass s1(20),s2(10),s3,s4;
    27    cout<<”s1:”;
    28    s1.disp();
    29    cout<<"s2:";
    30    s2.disp(),
    31    s4=s3.add(s1,s2);
    32    cout<<"执行s3.add(s1, s2)\ns3:";
    33    s3.disp();
    34    cout<<"s4:"; s4.disp();
    35    }

选项

答案(1)Testel.ass add(TestClass s1,TestClass s2) (2)return (*this); (3) };

解析 本题中的功能是设置类中的成员数值,然后利用成员函数add求和。从已定源程序的:main主函数开始入手,可以看出程序首先通过类TestClass中的成员函数实现题目中的输出要求。
    [解题思路]
    (1)打开modil.cpp,调试程序,根据显示的错误提示,知道语句“TestClass add(TestClass s1,s2)”中的变量“s2”没有声明类型,所以补充“s2”的类型,即“TestClassadd(1’estClass s1,TestClass s2)”。
    (2)“this.>n=s1.n+s2.n:”语句中的this变量为指针变量,所以第2个标识下的“return(this);”返回语句中的this变量,应该返回指针型,所以修改为“retum(*this);”。
    (3)C++中类的定义格式应为“class类名{};”,以分号为结尾,所以第3个标识下,类结尾处补充分号“;”,即修改为“};”。
转载请注明原文地址:https://jikaoti.com/ti/SRA0FFFM
0

随机试题
最新回复(0)