c++运算符重载成员函数和友元函数引用
时间: 2024-03-18 13:35:19 浏览: 94
运算符重载函数作为类成员函数和友元函数-面向对象程序设计课件
C++运算符重载可以通过成员函数和友元函数两种方式实现。其中,成员函数重载运算符是将运算符重载为类的成员函数,而友元函数重载运算符是将运算符重载为非类的成员函数。
成员函数重载运算符的语法格式如下:
```cpp
返回类型 operator 运算符(参数列表) {
// 函数体
}
```
例如,将运算符“+”重载为my_string类的成员函数:
```cpp
class my_string {
public:
my_string operator+(const my_string& str) {
my_string result;
// 实现字符串拼接
return result;
}
};
```
而友元函数重载运算符的语法格式如下:
```cpp
friend 返回类型 operator 运算符(参数列表);```
例如,将运算符“+”重载为非my_string类的友元函数:
```cpp
class my_string {
public:
friend my_string operator+(const my_string& str1, const my_string& str2) {
my_string result;
// 实现字符串拼接
return result;
}
};
```
需要注意的是,成员函数重载运算符只能重载部分运算符,例如“+”、“-”、“*”、“/”等,而不能重载赋值运算符“=”和下标运算符“[]”;而友元函数重载运算符可以重载所有运算符。
阅读全文