mystring.h
#include <ostream>
class MyString
{
public:
MyString(const char *str = "");
MyString(const MyString &str);
MyString& operator = (const MyString &r);
MyString operator + (const MyString &r);
friend std::ostream &operator << (std::ostream& os, const MyString &str);
~MyString();
private:
char *m_data;
};
mystring.cpp
#define _CRT_SECURE_NO_WARNINGS //strcpy安全检查
#include "mystring.h"
#include <string.h>
/*
Mystring str1;
MyString str2 = "hello";
*/
MyString::MyString(const char *str)
{
if (str == nullptr)
{
m_data = new char[1];
*m_data = '\0';
}
else
{
int len = strlen(str) + 1;
m_data = new char[len];
strcpy(m_data, str);
}
}
/*
Mystring str1 = "hello";
MyString str2 = str1;
*/
MyString::MyString(const