C++??String??????
???????????? ???????[ 2015/10/16 11:39:02 ] ??????????????????? .NET
????String??C++?е????????????????C++?????о?????????????String?????????????????????????????????????????????????????????????????????????????????????????
????String??????漰???C++???????????????????????????????о???????????????????????????????????ɡ?
????? ??????
??????????????????????????????????????String????????????????????????????????????????????????????????????????????????String???漰?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????л??????????????????????????????Щ?????????????????????????????????????????????
???????????????????????????????????Щ??????????
????????????????????????????????????????????????String????????????????????
??????????????????????????????????C????????????
???????????????????????????????????????????????????????????????????????
???????????????????????
class String
{
public:
String(const char *str = NULL); //??ù?????
String(const String &str); //??????????
~String(); //????????
String operator+(const String &str) const; //????+
String& operator=(const String &str); //????=
String& operator+=(const String &str); //????+=
bool operator==(const String &str) const; //????==
char& operator[](int n) const; //????[]
size_t size() const; //???????
const char* c_str() const; //???C?????
friend istream& operator>>(istream &is?? String &str);//????
friend ostream& operator<<(ostream &os?? String &str);//???
private:
char *data; //?????
size_t length; //????
};
?????????????????У????Щ?????const???ε???????????????????????????κ??????Щ??????????????????const???Σ?????ú??????????????????????
?????? ???????
??????????????г????????????
????????????????????????????????String??????????????????????????????????????в?????????????????????????????????????????
????????????C????strlen????????????????????????????????????strlen????????????
String::String(const char *str)//??ù?????
{
if (!str)
{
length = 0;
data = new char[1];
*data = '