有如下程序: #inc1ude<iostream> #inc1ude<cstring> using namespace std; c1ass MyString{ public: char str[80];

admin2017-06-18  23

问题 有如下程序:
    #inc1ude<iostream>
    #inc1ude<cstring>
    using namespace std;
    c1ass MyString{
    public:
    char str[80];
    MyString(const char*s){ strcpy(str,s);)
    MyString& operator+=(MyString a){
    strcat(str,a.str),
    return *this;
        }
    };
    ostream& operator<<(ostream& s,const MyString& z){return s<<z.str;}
    int main(){
    MyString x("abc"),y("cde");
    cout<<(x+=y)<<end1;
    return 0;
    }
    运行这个程序的输出结果是(    )。

选项 A、abc
B、cde
C、abcde
D、abccde

答案D

解析 在类MyString中,定义了带参数的构造甬数MyString(const char*s),其作用是把s指向的字符串拷贝到字符组str中。在类中还对运算+=进行重载定义,其作用是把字符串str和a相连接并赋给str,所以在主函数中执行x+=y时,结果为abccde。
转载请注明原文地址:https://kaotiyun.com/show/cmAp777K
0

最新回复(0)