面试题1_赋值运算符的实现

来源:互联网 发布:java集成极光推送 编辑:程序博客网 时间:2024/06/18 12:08

面试题1_赋值运算符的实现


//面试题1:赋值运算符的实现//赋值运算符的实现,需要考虑以下四点://点1:函数的返回值要是一个引用,并且是实例自身的引用,以便实现连续赋值。//点2:函数的参数要是一个常量引用,因为我们并不需要修改它,只需要引用它即可。//点3:如果我们忘记在分配新内存之前释放原有的内存,那么有可能造成内存泄漏。//点4:函数开始前要判断传入的参数和当前的实例是不是同一个实例,要是的话直接返回。//     否则有可能在我们释放了内存之后还要去引用它造成崩溃。class CMyString{public:CMyString(char *p=nullptr);~CMyString(void) {}CMyString(const CMyString &str);private:char *pData;};CMyString &CMyString::operator=(const CMyString &str){if(this != &str){CMyString strtemp(str);char *ptemp=strtemp.pData;strtemp.pData=pData;pData=ptemp;}return *this;}


原创粉丝点击