????????????????????????????????????????delete???????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????MyClass???????壺

class MyClass
{
    public:
        MyClass(int &p??int i): ptr(new int(p))?? value(i) { }
        MyClass(const MyClass &mc): ptr(new int(*mc.ptr))?? value(mc.value) { }//????????
        ~MyClass() { delete ptr; }//?????????????

        MyClass& operator=(const MyClass&);
        int get_share_value() { return *ptr; }
        int get_value() { return value; }
        void set_share_value(int i) { *ptr = i; }
        void set_value(int i) { value = i; }

    private:
        int *ptr;
        int value;
};

MyClass& MyClass::operator=(const MyClass &mc)
{
    *ptr = *mc.ptr;
    value = mc.value;

    return *this;
}

?????????????????????????????????????delete???????????????????

???????????????????????C#?п?????????clone???????ɡ?