operator=
赋值运算符重载
用一个己有对象,给另外一个己有对象赋值。两个对象均己创建结束后,发生的赋值行为。
语法格式
类名
{
类名& operator=(const 类名& 源对象)
拷贝体
}
class A
{
A& operator=(const A& another)
{
//函数体
return *this;
}
};
特性
- 系统提供默认的赋值运算符重载,一经实现,不复存在。
- 系统提供的也是等位拷贝,也就浅拷贝,会造成内存泄漏,重析构。
- 要实现深深的赋值,必须自定义。 (1.自赋值 2.内存泄露 3.重析构)
- 返回引用,通常不能用 const 修饰。string a,b,c; (a= b) = c; (a+b) = c
实现string类
mystring.h
/**
* Created by gopher on 24-7-28 下午6:45
*/
#ifndef CDEMO_MYSTRING_H
#define CDEMO_MYSTRING_H
#include <cstring>
#include <iostream>