美文网首页
C++中自增和自减的实现

C++中自增和自减的实现

作者: 迢晴 | 来源:发表于2020-02-06 19:39 被阅读0次

C++中自增和自减符号我们经常使用,了解它的实现方式能够更好的为自己定义的类实现自增和自减。我们首先需要了解一个知识点,自增和自减是通过重载"++"和"--"来实现的,但是普通的重载形式无法区分这两种情况,为了解决这个情况,后置版本接受一个额外的(不被使用)int类型的形参,编译器为这个形参提供一个值为0的实参

#include <iostream>
using namespace std;

class Test{
    int a;
    string str;
public:
    Test(int i, string s) : a(i), str(std::move(s)) {}

    Test &operator++(){//前置++
        ++a;
        return *this;
    }

    Test operator++(int){ //后置++,因为此处要返回局部变量,故不能使用引用
        Test ret = *this;
        ++*this;
        return ret;
    }

    Test &operator--(){//前置--
        --a;
        return *this;
    }

    Test operator--(int){ //后置--,因为此处要返回局部变量,故不能使用引用
        Test ret = *this;
        --*this;
        return ret;
    }

    friend ostream& operator<<(ostream &os, const Test &test){
        os << test.str << " : " << test.a << endl;
        return os;
    }
};

int main(){
    Test test(1, "C++");
    cout << test << endl;
    cout << "前置自增 : " << ++test << endl;
    cout << test++ << endl;
    cout << "后置自增 : " << test << endl;
    cout << "前置自减 : " << --test << endl;
    cout << test-- << endl;
    cout << "后置自增 : " << test << endl;
    return 0;
}


输出:

C++ : 1

前置自增 : C++ : 2

C++ : 2

后置自增 : C++ : 3

前置自减 : C++ : 2

C++ : 2

后置自减 : C++ : 1

相关文章

  • C++中自增和自减的实现

    C++中自增和自减符号我们经常使用,了解它的实现方式能够更好的为自己定义的类实现自增和自减。我们首先需要了解一个知...

  • 自增和自减

    自增与自减 运行结果a:6b:6 运行结果a:6b:5 其他运算符与c++没有区别 赋值运算符 注意 运行结果th...

  • 自增和自减

    自增++ - 通过自增可以使变量在自身的基础上增加1 - 对于一个变量自增以后,原变量的值会立即自增1 ...

  • 《Java核心技术卷一》——3.5.5自增与自减运算符

    在Java中,借鉴了C和C++的做法,也提供了自增、自减运算符:n++将变量n当前值加1,n--则将n的值减1。 ...

  • 2019-02-24

    算术运算符 主要介绍一下 %(取模)、自增(++)、自减(--) 自增 (++) 自增分为自增前(++a) 和自增...

  • 重点---自增和自减

  • javascript高级程序设计2

    3.5 操作符 1.自增自减操作符:前缀版自增自减 和 后缀版自增自减。 这两者的区别就在于前者的值在语句被求值...

  • 自增、自减

    var a = 20; var b = --a + 2; console.log(a);//19 console....

  • 自增自减

    自增(++)与自减(--)感觉这是很有意思的两个运算符号, 前缀形式:++i、--i 后缀后缀:i++、i-- 整...

  • 自增自减

    自增、自减(自动➕1或者自动➖1) 如果++在前代表先自增再参与其它运算如果++在后代表先参与其它运算再自增 自增...

网友评论

      本文标题:C++中自增和自减的实现

      本文链接:https://www.haomeiwen.com/subject/cxvuxhtx.html