CC++知识总结分析.docVIP

  • 4
  • 0
  • 约3.7万字
  • 约 62页
  • 2016-06-10 发布于湖北
  • 举报
String类的实现 #includeiostream?? #includeiomanip?? using?namespace?std;?? ?? class?String{?? ????friend?ostream?operator?(ostream,String);//重载运算符?? ????friend?istream?operator?(istream,String);//重载运算符?? public:?? ????String(const?char*?str=NULL);????????????????//赋值构造兼默认构造函数(char)?? ????String(const?String?other);?????????????????//构造函数(String)?? ????String?operator=(const?String?other);???????//operator=?? ????String?operator+(const?String?other)const;??//operator+?? ????bool?operator==(const?String);??????????????//operator==?? ????char?operator[](unsigned?int);??????????????//operator[]?? ????size_t?size(){return?strlen(m_data);};?? ????~String(void)?{delete[]?m_data;}?? private:?? ????char?*m_data;?//?用于保存字符串?? };?? ?? inline?String::String(const?char*?str)????? {?? ????if(!str)m_data=0;??????//声明为inline函数,则该函数在程序中被执行时是语句直接替换,而不是被调用?? ????else?{?? ????????m_data=new?char[strlen(str)+1];?? ????????strcpy(m_data,str);?? ????}?? }?? ?? inline?String::String(const?String?other)?? {?? ????if(!other.m_data)m_data=0;//在类的成员函数内可以访问同种对象的私有成员(同种类则是友元关系)?? ????else??? ????{?? ????????m_data=new?char[strlen(other.m_data)+1];?? ????????strcpy(m_data,other.m_data);?? ????}?? }?? ?? inline?String?String::operator=(const?String?other)?? {?? ????if?(this!=other)?? ????{?? ????????delete[]?m_data;?? ????????if(!other.m_data)?m_data=0;?? ????????else?? ????????{?? ????????????m_data?=?new?char[strlen(other.m_data)+1];?? ????????????strcpy(m_data,other.m_data);?? ????????}?? ????}?? ????return?*this;?? }?? inline?String?String::operator+(const?String?other)const?? {?? ????String?newString;?? ????if(!other.m_data)?? ????????newString?=?*this;?? ????else?if(!m_data)?? ????????newString?=?other;?? ????else?? ????{?? ????????newString.m_data?=?new?char[strlen(m_data)+strlen(other.m_data)+1];?? ????????strcpy(newString.m_data,m_data);?? ????????strcat(newString.m_data,other.m_data);?? ????}?? ????return?newString;?? }?? ?? inline?bool?String::operator==(const?String?s)?????? {?? ????if?(?s

文档评论(0)

1亿VIP精品文档

相关文档