C++学习笔记:=操作符的重载实现

来源:互联网 发布:锐捷mac版 编辑:程序博客网 时间:2024/05/16 11:35
<pre name="code" class="cpp">// 等号操作符重载.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#pragma warning(disable:4996)using namespace std;class Name{public:Name &operator=(Name& obj){//先清空原来name1指向的空间if (this->name != NULL){delete[] name;this->len = 0;}len = obj.len;name = new char[len + 1];strcpy(name, obj.name);return *this;//再返回一个引用 函数返回值做左值,需返回引用}Name(char* _name,int _len){len = _len;name = (char *)malloc(sizeof(char)*(_len + 1));strcpy(name, _name);}~Name(){len = 0;if (name != NULL){free(name);name = NULL;}}private:int len;char *name;};int _tmain(int argc, _TCHAR* argv[]){Name n1("abcdefg", 7);Name n2("obj2",4);n1 = n2;//如果不重载=操作符的话,程序会down掉return 0;}

                                             
0 0
原创粉丝点击