我尝试创建自己的类,其中包含三个变量: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}':构造函数不允许返回类型
感谢您的帮助!
答案 0 :(得分:2)
类定义最后没有分号。
其他评论:
为避免名称冲突(例如使用std::distance
),请勿在标题中的全局命名空间中放置using namespace std;
。
<stdafx.h>
是在Visual Studio项目中定义的非标准标头,它使该代码依赖于Visual Studio。您可以通过关闭项目设置中的“预编译头”来避免它。
答案 1 :(得分:0)
类或结构的声明必须以'结尾; “