运算结果为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;
}

C++填空题,运算结果为Welcome!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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; }
问题解决的话,请采纳
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报