使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)重载运算符int,请在注释//********1********后添加适当的语句。 (2)重载运算符“

admin2015-05-30  26

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
    (1)重载运算符int,请在注释//********1********后添加适当的语句。
    (2)重载运算符“<<”,请在注释//********2********后添加适当的语句。
    (3)在主函数main()中定义变量i,并调用对象obj的int运算符,给变量赋初值为10,请在注释//********3********后添加适当的语句。
    (4)调用obj的“<<”运算符输出:
    HelloTest
    注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
    1    #include
    2  USing namespace std,
    3    class TestClass
    4    {
    15     publiC:
    6    //********1********
    7
    8    {
    9    cout<<”int"<    10    return 10 ;
           }
    11    //********2********
    12
    13    {  
    14    cout<    15    }
    16    };
    17    int main()
    18    {
    19   TestClass obj ;
    20    //********3********
    21
    22    //********4********
    23
    24    return 0;
    25    }

选项

答案(1)添加语句:operator int() (2)添加语句:operator<<(char*str) (3)添加语句:int i=int(obj); (4)添加语句: obj<<"Hello Test";

解析 本题的功能是通过重载运算符实现字符串输出。在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类TestClass的运算符重载函数实现各种输出操作。
    [解题思路]
    (1)题目1要求“重载运算符int”的定义。运算符重载的方法是定义一个重载运算符的函数,其一般格式为:函数类型operator运算符名称(形参列表){对运算符的重载处理}。所以第1个标识下,重载运算符int的语句为“operatorint()”。
    (2)题目2要求“重载运算符‘<<’”。同(1),第2个标识下“<<”的重载函数定义为“operator<<(char*str)”。
    (3)题目3要求“在主函数main()中定义变量i,并调用对象obj的int运算符,给变量赋初值为10。”定义变量i,即int i。“operator int()”中的返回值为10,所以调用对象obj的int运算符,给变量赋初值为10,就是int(obj),即第三个标识下添加“int i=int(obi);”。
    (4)题目4要求“调用obj的“<<”运算符输出“HelloTest””。重载运算符“<<”后,不仅能输出标准类型数据,而且可以输出用户自己定义的类对象。所以直接添加要输出的字符串即可,即“obj<<"Hello Test";”。
转载请注明原文地址:https://kaotiyun.com/show/BJNp777K
0

最新回复(0)