前增量和后增量的重载运算符
此查询深入研究了重载运算符以促进前增量和后增量的可行性增量操作。在预递增 (SampleObject) 中,对象在返回其值之前递增。后递增 (SampleObject) 递增对象并返回其原始值。
通过运算符重载实现这些操作需要了解返回类型的限制。虽然基于返回类型的重载似乎是允许的,但它会带来歧义问题。运算符重载将内置类型的功能扩展到用户定义的类型。然而,目前还不清楚为什么用户定义类型的前置增量和后置增量不能共存。
为了解决这种歧义,后置增量运算符使用一个虚拟 int 参数:
// Prefix
Sample& operator ()
{
// Increment logic on this instance; return reference to it.
return *this;
}
// Postfix
Sample operator (int)
{
Sample tmp(*this);
operator (); // Prefix-increment this instance
return tmp; // Return value before increment
}
通过这种方法,预增量运算符返回对增量对象的引用,而后增量运算符返回增量操作之前对象的副本。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3