woneyee 2019-10-29 01:58 采纳率: 100%
浏览 198
已采纳

C++填空题,运算结果为Welcome!

运算结果为Welcome!,请填空完成。
#include < iostream>
using namespace std;
class ChangeStr{
private:char *s;
public:
void set(char *str){
str = new char[strlen(s)+1];
strcpy(str, s);
}
ChangeStr& _____填空_______ {
delete str;
set(a.str);
return *this;
}
void show(){
cout<<str<<endl;
}
ChangeStr(char *a){
set(a);
}
~ChangeStr(){
delete str;
}
};
int main(){
ChangeStr s1("Welcome!"), s2("Hello!");
_____填空_______
s2.show();
return 1;
}

展开全部

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-10-29 03:06
    关注
    ChangeStr& set(ChangeStr a){
    
    s2.set(s1);
    

    严格来说,你的题目程序根本就不对,没办法在仅仅填空的情况下运行起来。

    正确的完整的程序:

    #include <iostream>
    #include <string.h>
    
    using namespace std;
    class ChangeStr{
    private:char *str; //特别是这里2处
    public:
    void set(char *s){
    str = new char[strlen(s)+1]; //特别是这里2处
    strcpy(str, s);
    }
    ChangeStr& set(ChangeStr a) {
    delete str;
    set(a.str);
    return *this;
    }
    void show(){
    cout<<str<<endl;
    }
    ChangeStr(char *a){
    set(a);
    }
    ~ChangeStr(){
    delete str;
    }
    };
    int main(){
    ChangeStr s1((char *)"Welcome!"), s2((char *)"Hello!");
    s2.set(s1);
    s2.show();
    return 1;
    }
    

    问题解决的话,请采纳

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部