无法创建自己的日期类

Cannot create my own date class

本文关键字:日期 自己的 创建      更新时间:2023-10-16

我尝试创建自己的类,该类包含三个变量:日、月和年。我加了两个运算符来比较。这是我的头文件和cpp文件:

标题:

#ifndef DATE_H
#define DATE_H
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <array>
using namespace std;
class Date {
public:
    int day;
    int month;
    int year;
    Date(int m, int d, int y); 
    bool operator< (const Date &) const; 
    bool operator== (const Date &) const; 
}
#endif

CPP:

#include "stdafx.h"
#include "date.h"
Date::Date(int m, int d, int y)
    :day(d),month(m),year(y){}
bool Date::operator< (const Date & d2) const
{
    bool result;
    if(year<d2.year){  
        result=true;
    }
    else if (year==d2.year&&month<d2.month){
        result=true;
    }
    else if (month==d2.month&&day<d2.day){
        result = true;
    }
    else{
        result = false;
    }
    return result;
}
bool Date::operator== (const Date & d2) const
{
    return (year==d2.year)&&(month==d2.month)&&(day==d2.day);
}

错误为

错误C2533:"日期::{ctor}":构造函数不允许返回类型

谢谢你的帮助!

类定义末尾缺少分号。


其他评论:

  • 为了避免名称冲突(例如与std::distance),请不要在标头的全局命名空间中放置using namespace std;

  • <stdafx.h>是在Visual Studio项目中定义的非标准头,它使代码依赖于Visual Studio。您可以通过关闭项目设置中的"预编译头"来避免这种情况。

类或结构的声明必须以";"结尾