目录
3、实现重载【std::cin>>str】 str是hstring类的对象
1、实现重载"<<"
hstring& operator<<(const hstring& str);
hstring& hstring::operator<<(const hstring& str) { unsigned short slen = GetLength(str.cstr); slen = slen + this->uslen - 1; if (slen > usmlen) { delete[] cstr; cstr = new char[slen]; usmlen = slen; } memcpy(cstr + uslen - 1, str.cstr, slen - this->uslen + 1); uslen = slen; return *this; }
hstring& hstring::operator+(const hstring& str) { return *this << str; }
2、实现重载【std::cout<<str】 str是hstring类的对象
相当于
std::cout.operator<<(str);
首先,std::cout是C++已经写好的一个类,那么如何实现呢?
虽然无法改造类,可以利用这种方法重新实现一下,有两种实现方法
①std::cout.operator<<(str);
②operator<<(std::cout, str);
3、实现重载【std::cin>>str】 str是hstring类的对象
std::istream& operator>>(std::istream& _cin, hstring& _in) {
//预分配空间
char _sRead[0x1FF]{};
_cin >> _sRead;
_in = _sRead;
//_cin >> _in.c_str();
return _cin;
}