无法创建自己的日期类

时间:2013-12-17 04:46:24

标签: c++

我尝试创建自己的类,其中包含三个变量:day,month和year。我添加两个运算符进行比较。这是我的头文件和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:'Date :: {ctor}':构造函数不允许返回类型

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

类定义最后没有分号。


其他评论:

  • 为避免名称冲突(例如使用std::distance),请勿在标题中的全局命名空间中放置using namespace std;

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

答案 1 :(得分:0)

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