收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:『21天精通C++』第二周学习笔记(2-3)『21天精通C++』第二周学习笔记(2-3)

2004-02-14 09:34 出处:PConline 作者:雷神 责任编辑:zwg
拷贝构造函数是一种特殊类型的构造函数。它的参数是一个对象变量的引用。当根据某个对象初始化新对象时,或是通过引用传递返回对象时,需要调用拷贝构造函数。 ////////////////////////////////////////////////////////////// //字符串类string弥补了VC++没有字符串的缺憾 //copyright rbg and 2000 //Filename:StrClass.cpp ////////////////////////////////////////////////////////////// #include #include class String{ char *st; public: String &operator=(const String &); friend String operator+(const String &,const String &); friend ostream &operator<<(ostream &,const String &); String(); String(const char *); String(const String &); ~String(); }; String &String::operator=(const String &s) { if(this==&s) {return *this;} delete [] st; st=new char[strlen(s.st)+1]; strcpy(st,s.st); return * this; } String::String() { st='\0'; } String::String(const char *s) { st=new char[strlen(s)+1]; strcpy(st,s); } String::String(const String &s) { st=new char[strlen(s.st )+1]; strcpy(st,s.st ); } String::~String () { delete []st; } String operator+(const String &source,const String &tar) { if(!strlen(source.st)) return tar; else if(!strlen(source.st)) return source; String temp; temp.st=new char[strlen(source.st)+strlen(tar.st)+1]; strcpy(temp.st,source.st ); strcat(temp.st ,tar.st ); return temp; } ostream &operator<<(ostream &out,const String &s) { out< return out; } //////////////////////////////////////////////////////////////////////// main(){ String myname; String youname("zhangsan"); String hisname=youname; myname="renbugang"; cout<<"My name is:"< cout<<"You name is:"< cout<<"His name is:"< hisname="lisi"; cout<<"His name chanage:"< String ourname; ourname=myname+youname+hisname; cout<<"Our name is:"< return 0; }
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部