小编big*_*225的帖子

c ++ if语句不能在重载的"++"后缀运算符中工作

我试图让重载的postfix运算符make day = 1每当第365天第一个剪切是我创建原型,第二个片段是实际的代码定义,我似乎无法弄清楚这一点.任何帮助,将不胜感激.基本上该程序会询问用户一年中的哪一天他们想要日期.

所以这一天可能是364,也就是12月30日.

我想让++运算符把这一天带回到第1天,每当我使用它来增加当天为365的对象时.如果对象不是365我只想让它增加1天

每当我把它改为if(day == 365)它做同样的事情时,它仍然增加1,但我最终得到366,而不是1.

我很感激帮助.这是一个家庭作业,但它让我st脚.编辑:发布更多代码.再次感谢帮助人员

#include<iostream>
#include<string>

using namespace std;

class DayOfYear {            
    public:
        DayOfYear(int d);
        void print();
        static string month;
        DayOfYear();
        DayOfYear(string m, int d);
        DayOfYear operator++(int);
        int day;    
};

string DayOfYear::month;

DayOfYear DayOfYear::operator++(int) {
    DayOfYear temp = *this;    

    if (day == 365) {
        day = 1;
    } else {
        day++;
    }

    return temp;
}

DayOfYear::DayOfYear(string m, int d) {
    month = m;
    day = d;

    if (m == "January" && d > 31) …
Run Code Online (Sandbox Code Playgroud)

c++ overloading

-2
推荐指数
1
解决办法
410
查看次数

标签 统计

c++ ×1

overloading ×1