方法1:
用动态分配内存实现
#include <iostream>
class hString
{
private:
char* string;
unsigned short len;
unsigned short length(const char* str)
{
unsigned short len = 0;
while (str[len])
{
len++;
}
return len;
}
public:
hString()
{
len = 0;
string = new char[1]{ 0 };
}
hString(const char* str)
{
len = length(str);
string = new char[len];
memcpy(string, str, len);
}
hString(const hString& str) :hString(str.string)
{}
char* GetStr() const
{
return string;
}
void SetStr(const char* str)
{
unsigned short mlen = length(str);
if (mlen > len)
{
delete[] string;
string = new char[mlen];
}
memcpy(string, str, mlen);
}
~hString()
{
delete[] string;
}
};
int main()
{
hString str("你好!");
hString strA(str);
strA.SetStr("55582");
std::cout << strA.GetStr();
}
方法2:
#include <iostream>
class hString
{
private:
char* string;
public:
hString()
{
string = (char*)"";
}
hString(const char* str)
{
string = (char*)str;
}
hString(const hString& str) :hString(str.string)
{}
char* GetStr() const
{
return string;
}
void SetStr(const char* str)
{
string = (char*)str;
}
};
int main()
{
hString str("你好!");
hString strA(str);
strA.SetStr("55582");
std::cout << strA.GetStr();
}