C++运算符重载

运算符重载允许你为自定义类型(如类或结构体)定义已有的运算符的行为,使其像内置类型一样进行直观操作。其核心语法格式如下:

返回类型 operator 运算符(参数列表) { // 重载的实现 }

这里的 operator是关键字。运算符重载函数通常作为类的​​成员函数​​或​​友元函数(非成员函数)​​ 实现,两者格式有细微差别。

1. 作为成员函数重载

当重载为类的成员函数时,二元运算符的参数列表通常只需一个参数(右操作数),左操作数默认为该类对象本身(通过 this指针访问)。一元运算符通常不需要参数。

~~~cpp

class ClassName {

public:

// 二元运算符(例如 +)

返回类型 operator运算符(类型 右操作数) {

// 实现代码

}

// 一元运算符(例如 -)

返回类型 operator运算符() {

// 实现代码

}

};

~~~

2. 作为友元函数(非成员函数)重载

某些运算符(如输入 >>和输出 <<运算符)必须重载为非成员函数,通常声明为类的 friend以便访问私有成员。此时,参数列表通常需要两个参数,分别表示左、右操作数。

~~~cpp

class ClassName {

public:

// 声明友元函数

friend 返回类型 operator运算符(类型 左操作数, 类型 右操作数);

};

// 在类外定义

返回类型 operator运算符(类型 左操作数, 类型 右操作数) {

// 实现代码

}

~~~

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务