说我有这样的一个类

class foo
{
public:
    char* operator+ ()           //unary operator - prefix before instance
    {
        return "SomeChar";
    }
};

现在我可以这样使用
foo d;
std::cout << +d; //unary operator used as prefix allowed

现在,如果我想将一元运算符用作后缀,则根据this页面



我正在使用+而不是++,因为两者都是一元运算符

我可以执行以下操作
class foo
{
public:
    char* operator+ ()           //unary operator - prefix before instance
    {
        return "SomeChar";
    }

    //Added this for postfix unary operation
    char* operator+ (int)       //unary operator - postfix before instance
    {
       return "SomeChar";
    }
};

但是,此(后缀)不起作用
foo d;
std::cout << (d+) ; //unary operator used as post fix ERROR (Expected an expression)

关于这个问题有什么建议/评论吗?

最佳答案

+不能是后缀运算符。仅++--可以。

关于c++ - 为后缀重载一元运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26011981/

10-17 01:27