摘要:
看下面一段代码:class Bitmap { ... }class Widget{ public: Widget& operaotr=(const Widget& wg); private: Bitmap* bp;}Widget& operator=(const Widget& wg){ delete bp; bp = new Bitmap(*wg.bp); return *this;}上面的一段简单的赋值函数,看上去逻辑很正确:首先释放掉bp所指的当前对象,然后将其指向新的对象,并返回指向this的引用。如果仔细分析,会发现存在下面两... 阅读全文