operator 运算符

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
//namespace j
//{
//    class string
//    {
//        friend ostream& operator<<(ostream& out, const string& s);
//    public:
//        string(const char* str)
//            :_str(new char[strlen(str) + 1])
//        {
//            strcpy(_str, str);
//        }
//        string(const string& s)
//            :_str(new char[strlen(s._str) + 1])
//        {
//            strcpy(_str, s._str);
//        }
//        string& operator =(const string& s)
//        {
//            if (this != &s)
//            {
//                delete[]_str;
//                _str = new char[strlen(s._str) + 1];
//                strcpy(_str, s._str);
//            }
//            return *this;
//        }
//        operator const char* ()
//        {
//            return _str;
//        }
//        ~string()
//        {
//            delete[]_str;
//            _str = nullptr;
//        }
//    private:
//        char* _str;
//    };
//    ostream& operator<<(ostream& out, const string& s)
//    {
//        out << s._str;
//        return out;
//    }
//    void test_1()
//    {
//        string s1("hello world");
//        string s2(s1);
//        cout << s1 << "    ";
//        cout << s2 << "";
//    }
//
//}
//int main()
//{
//    j::test_1();
//
//    return 0;
//}

class Data {
private:
    int _day; int _month; int _year;
public:
    Data(int day, int month, int year)
    : _day(day), _month(month),_year(year)
    {}
public:
    Data& operator++() {
        ++_day;
        return *this;
    }
    Data& operator--() {
        ++_day;
        return *this;
    }
    Data operator ++(int) {
        Data copy(*this);
        ++_day;
        return copy;
    }
    Data operator --(int) {
        Data copy(*this);
        --_day;
        return copy;
    }
    Data operator +(int ToAdd) {//后置+
        //Data nData(_day + ToAdd, _month, _year);
        return Data(_day + ToAdd, _month, _year);
    }
    Data operator -(int ToSub) {
        return Data(_day - ToSub, _month, _year);
    }
    void operator +=(int toadd) {
        _day+= toadd;
    }
    void operator -=(int tosub) {
        _day -= tosub;
    }
    ~Data() {
        int _day = 0;
        int _month = 0;
        int _year = 0;
    }
    void Printf() {
        cout  << _day <<"/" << _month  <<"/" << _year<< endl;
    }
};
int main() {
    Data d(20, 12, 2015);
    d.Printf();
    ++d;
    d.Printf();
    --d;
    d.Printf();
    d++;
    d.Printf();
    d--;
    d.Printf();
    
    Data pri(d - 6);
    pri.Printf();
    Data n(d + 6);
    n.Printf();

    d += 9;
    d.Printf();
    d -= 6;
    d.Printf();
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值