其他分享
首页 > 其他分享> > 如何区分(重载时)运算符的前缀和后缀形式? (C )

如何区分(重载时)运算符的前缀和后缀形式? (C )

作者:互联网

因为我为迭代器类重载了运算符

template<typename T>
typename list<T>::iterator& list<T>::iterator::operator++()
{
    //stuff
}

但是当我尝试做的时候

list<int>::iterator IT;
IT++;

我使用前缀表单得到关于没有postifx的警告.我怎样才能专门重载前缀/ postifx表单?

解决方法:

编写相同运算符重载的版本,但为其提供int类型的参数.您不必对该参数的值执行任何操作.

如果您对这种语法如何到达的历史感兴趣,请访问there’s a snippet of it here.

标签:postfix-operator,c,operator-overloading,prefix-operator
来源: https://codeday.me/bug/20190926/1819124.html