#include <iostream>
#include <string>
using namespace std;
struct mystring : public std::string
{
// ... appropriate constructors are an exercise left to the reader
mystring& operator=(const char* right)
{
if (right == NULL)
clear();
else
std::string::operator=(right);
return *this;
}
};
int main() {
mystring s1, s2;
s1 = NULL;
s2 = "hello";
cout << "-" << s1 << "- -" << s2 << "-" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG15c3RyaW5nIDogcHVibGljIHN0ZDo6c3RyaW5nCnsKICAgIC8vIC4uLiBhcHByb3ByaWF0ZSBjb25zdHJ1Y3RvcnMgYXJlIGFuIGV4ZXJjaXNlIGxlZnQgdG8gdGhlIHJlYWRlcgogICAgbXlzdHJpbmcmIG9wZXJhdG9yPShjb25zdCBjaGFyKiByaWdodCkKICAgIHsKICAgICAgICBpZiAocmlnaHQgPT0gTlVMTCkKICAgICAgICAgICAgY2xlYXIoKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHN0ZDo6c3RyaW5nOjpvcGVyYXRvcj0ocmlnaHQpOwogICAgICAgIHJldHVybiAqdGhpczsKICAgIH0KfTsKCmludCBtYWluKCkgewoJbXlzdHJpbmcgczEsIHMyOwoJczEgPSBOVUxMOwoJczIgPSAiaGVsbG8iOwoJY291dCA8PCAiLSIgPDwgczEgPDwgIi0gLSIgPDwgczIgPDwgIi0iIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==