给出赋值运算符重载函数
时间: 2024-02-26 15:56:58 浏览: 54
运算符重载函数
赋值运算符重载函数通常用于自定义对象的赋值操作。其函数原型为:
```C++
class MyClass {
public:
MyClass& operator=(const MyClass& other);
};
```
在这个函数中,`other`是另一个`MyClass`对象的引用,表示要将其值赋给当前对象。函数返回类型为`MyClass&`,表示赋值操作后的当前对象的引用。
下面是一个示例:
```C++
class MyString {
private:
char* data;
size_t len;
public:
MyString() {
data = nullptr;
len = 0;
}
MyString(const char* str) {
len = strlen(str);
data = new char[len + 1];
strcpy(data, str);
}
MyString(const MyString& other) {
len = other.len;
data = new char[len + 1];
strcpy(data, other.data);
}
~MyString() {
delete[] data;
}
MyString& operator=(const MyString& other) {
if (this != &other) {
delete[] data;
len = other.len;
data = new char[len + 1];
strcpy(data, other.data);
}
return *this;
}
};
```
在上面的例子中,`MyString`类定义了一个字符串类,其中重载了赋值运算符。在赋值运算符函数中,首先需要判断是否是自我赋值,如果是则直接返回当前对象的引用。否则,需要先释放当前对象的内存,然后将另一个对象的值复制到当前对象中,最后返回当前对象的引用。
阅读全文