重载操作符参数
Overloading Operator parameters
我想知道在c++中重载操作符可以接受多少参数?
我见过运算符同时接受一个和两个参数,所以我想知道它们是可以同时接受两个参数还是只接受一个参数,特别是对于-
和<<
运算符
<<
总是接受一个参数。例如,对于x << y
, x
将是调用operator<<()
的实例,y
将是其参数。当然,可以用y
的类型重载操作符,但总是只有一种。
-
操作符有两种类型,并且确实重载了不同数量的参数:
- Unary (
-x
) - 二进制(
x - y
)
对于减号操作符,它只能接受一个形参,如下所示:
object& operator-(const object &ref); //please note the syntax and use of const
对于<<操作符(称为ostream),你像这样重载它,它有两个参数:
friend ostream& operator<<(ostream &str, const object &ref);
希望这能回答你的问题。
相关文章:
- 我可以将C 17 Capture lambda ConstexPR转换操作符的结果用作函数指针模板非类型参数吗?
- 单参数构造函数和赋值操作符
- c++中的操作符重载,无法调用双参数构造函数
- 操作符重载模板参数
- c++操作符重载以指针类型作为参数
- 在覆盖new操作符时传递更多参数(c++)
- 带有不同参数的c++操作符重载模板
- 重载操作符=,不同的类作为参数
- 如何检查类型是否存在无参数操作符()
- 传递静态方法作为参数,不需要地址操作符
- 检索对象的函数操作符的参数类型
- 带有派生类型参数的赋值操作符
- 使用具有不同参数的相同操作符
- 为什么小于操作符接受不同类型的参数,而std::min不接受
- 将构造函数参数转发给放置new操作符
- (为什么)移动构造函数或移动赋值操作符应该清除其参数
- 对操作符()()中具有状态和两个参数的函数对象使用boost绑定
- 比较测试失败:unorder_map上的[]操作符产生的参数数量错误
- 操作符重载和不同的模板参数
- c++如何确定重载操作符的参数