#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
class CWin
{
protected:
char id;
public:
CWin(char i='D'):id(i)
{
}
CWin(const CWin& win)
{
id=win.id;
}
};
class CTextWin : public CWin
{
private:
char *text;
public:
CTextWin(char i, const char *tx):CWin(i)
{
text= new char[strlen(tx)+1];
strcpy(text,tx);
}
~CTextWin()
{
delete [] text;
}
void show_member()
{
cout << "Window " << id << ": ";
cout << "text = " << text << endl;
}
void set_member(char i, const char *tx)
{
id=i;
delete [] text;
text= new char[strlen(tx)+1];
strcpy(text,tx);
}
};
int main(void)
{
CTextWin tx1('A',"Hello C++");
CTextWin tx2(tx1);
tx1.show_member();
tx2.show_member();
cout << "更改tx1物件的成員之後..." << endl;
tx1.set_member('B',"Welcome C++");
tx1.show_member();
tx2.show_member();
system("pause");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNzdHJpbmc+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBDV2luCnsKICAgcHJvdGVjdGVkOgogICAgIGNoYXIgaWQ7CgogICBwdWJsaWM6CiAgICAgQ1dpbihjaGFyIGk9J0QnKTppZChpKQogICAgIHsKCiAgICAgfQogICAgIENXaW4oY29uc3QgQ1dpbiYgd2luKQogICAgIHsKICAgICAgICBpZD13aW4uaWQ7CiAgICAgfQp9OwoKY2xhc3MgQ1RleHRXaW4gOiBwdWJsaWMgQ1dpbgp7CiAgIHByaXZhdGU6CiAgICAgIGNoYXIgKnRleHQ7CgogICBwdWJsaWM6CiAgICAgIENUZXh0V2luKGNoYXIgaSwgY29uc3QgY2hhciAqdHgpOkNXaW4oaSkKICAgICAgewogICAgICAgICB0ZXh0PSBuZXcgY2hhcltzdHJsZW4odHgpKzFdOwogICAgICAgICBzdHJjcHkodGV4dCx0eCk7CiAgICAgIH0KICAgICAgfkNUZXh0V2luKCkKICAgICAgewogICAgICAgICBkZWxldGUgW10gdGV4dDsKICAgICAgfQogICAgICB2b2lkIHNob3dfbWVtYmVyKCkKICAgICAgewogICAgICAgICBjb3V0IDw8ICJXaW5kb3cgIiA8PCBpZCA8PCAiOiAiOwogICAgICAgICBjb3V0IDw8ICJ0ZXh0ID0gIiA8PCB0ZXh0IDw8IGVuZGw7CiAgICAgIH0KICAgICAgdm9pZCBzZXRfbWVtYmVyKGNoYXIgaSwgY29uc3QgY2hhciAqdHgpCiAgICAgIHsKICAgICAgICAgaWQ9aTsKICAgICAgICAgZGVsZXRlIFtdIHRleHQ7CiAgICAgICAgIHRleHQ9IG5ldyBjaGFyW3N0cmxlbih0eCkrMV07CiAgICAgICAgIHN0cmNweSh0ZXh0LHR4KTsKICAgICAgfQp9OwppbnQgbWFpbih2b2lkKQp7CiAgIENUZXh0V2luIHR4MSgnQScsIkhlbGxvIEMrKyIpOwogICBDVGV4dFdpbiB0eDIodHgxKTsKCiAgIHR4MS5zaG93X21lbWJlcigpOwogICB0eDIuc2hvd19tZW1iZXIoKTsKCiAgIGNvdXQgPDwgIuabtOaUuXR4MeeJqeS7tueahOaIkOWToeS5i+W+jC4uLiIgPDwgZW5kbDsKICAgdHgxLnNldF9tZW1iZXIoJ0InLCJXZWxjb21lICBDKysiKTsKCiAgIHR4MS5zaG93X21lbWJlcigpOwogICB0eDIuc2hvd19tZW1iZXIoKTsKCiAgIHN5c3RlbSgicGF1c2UiKTsKICAgcmV0dXJuIDA7Cn0=