#include <iostream>
#include <cstring>
using namespace std;
class String {
char * text;
public :
String( char * str ) ;
~String( ) ;
void printStr( ) { cout << text<< endl; }
} ;
String:: String ( char * str ) {
cout << "enter 'String::String', str=>" << str<< endl;
text = new char [ strlen ( str) + 1 ] ;
strcpy ( text, str ) ;
}
String:: ~String( ) {
cout << "enter 'String::~String', text=>" << ( void * ) text<< endl;
//delete[]text;
}
int main( ) {
String str1( "abcdef12345" ) ;
String str2( str1) ;
str1.printStr ( ) ;
str2.printStr ( ) ;
cout << "ending main!" << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgU3RyaW5nIHsKICAgIGNoYXIgKiB0ZXh0OyAKICBwdWJsaWM6CiAgICBTdHJpbmcoIGNoYXIgKiBzdHIgKTsKICAgIH5TdHJpbmcoKTsKICAgIHZvaWQgcHJpbnRTdHIoKXtjb3V0PDx0ZXh0PDxlbmRsO30KfTsKU3RyaW5nOjpTdHJpbmcoIGNoYXIgKiBzdHIgKSB7CiAgICBjb3V0PDwiZW50ZXIgJ1N0cmluZzo6U3RyaW5nJywgc3RyPT4iPDxzdHI8PGVuZGw7CiAgICB0ZXh0ID0gbmV3IGNoYXJbc3RybGVuKHN0cikrMV07CiAgICBzdHJjcHkoIHRleHQsIHN0ciApOyAKfQpTdHJpbmc6On5TdHJpbmcoKSB7CiAgICBjb3V0PDwiZW50ZXIgJ1N0cmluZzo6flN0cmluZycsIHRleHQ9PiI8PCh2b2lkKil0ZXh0PDxlbmRsOyAgICAKICAgIC8vZGVsZXRlW110ZXh0OyAKfQoKaW50IG1haW4oKSB7CiAgICBTdHJpbmcgc3RyMSgiYWJjZGVmMTIzNDUiKTsgIAogICAgU3RyaW5nIHN0cjIoc3RyMSk7ICAKICAgIHN0cjEucHJpbnRTdHIoKTsKICAgIHN0cjIucHJpbnRTdHIoKTsKICAgIGNvdXQ8PCJlbmRpbmcgbWFpbiEiPDxlbmRsOyAKICAgIHJldHVybiAwOwp9