#include<iostream> using namespace std; class String { public: String() :_str( new char [1]) { _str = ‘\0‘; } String( const char * str) :_str( new char [strlen(str) + 1]) { strcpy( this->_str ,str); } String( const String& str) :_str( new char [strlen(str._str) + 1]) { strcpy( this->_str ,str._str); } ~String() { delete []_str; } String& operator= (const String& str) { String tmp(str); swap( this->_str ,tmp._str ); return *this ; } void Display() { printf( "%s\n",_str); } private: char *_str; }; void test1() { String s1( "change world");//构造 s1.Display(); String s2 = s1; //拷贝构造 s2.Display(); String s3; s3.Display(); s3 = s1; //赋值拷贝 s3.Display(); } int main() { test1(); system( "pause"); return 0; }
时间: 2024-10-13 18:01:04