C++纠错,帮帮哈

来源:百度知道 编辑:UC知道 时间:2024/06/22 22:20:43
#include<iostream>
#include<cstring>
#include<cstddef>

class MyString
{
public:
void output();
friend MyString get_char(char *s);
MyString()
{
strcpy(str,'\0');
}
MyString(char *s)
{
str=new char[strlen(s)+1];
strcpy(str,s);
}
~MyString()
{
delete [] str;
}
friend MyString operator +(MyString& account1,MyString& account2);

private:
char *str;
};
using namespace std;

int main()
{

MyString account1,account2,account3;
char s[50],t[50];
cin.getline(s,50);
account1=MyString(s);
cin.getline(t,50);
account2=MyString(t);
account3=account1+account2;
account3.output();
return 0;
}

MyString operator +(MyString& account1,MyString& account2)
{
MyString temp;
strcpy(temp.str,account1.str);<

#include <iostream>
#include <cstring>
#include <cstddef>

class MyString
{
public:
void output();
friend MyString get_char(char *s);
MyString()
{
str = NULL;
//strcpy(str,'\0');
}
MyString(const char *s)
{
str=new char[strlen(s)+1];
strcpy(str,s);
}
MyString(const MyString &rhs)
{
str = new char[strlen(rhs.str) + 1];
strcpy(str, rhs.str);
}
MyString &operator=(const MyString &rhs)
{
// 判断是否自己赋值给自己
if (this == &rhs)
return *this;

if (str) delete[] str;

str = new char[strlen(rhs.str) + 1];
strcpy(str, rhs.str);
return *this;
}

~MyString()
{
delete [] str;
}
friend MyString operator +(MyString& account1,MyString& account2);

private:
char *str;
};

using namespace std;