C++ 如何解决我的C++;头文件?
这个程序的目标是从1到365取一个整数,并将其转换为一个月和一天。例2=一月二日,365=十二月三十一日。我以为我把所有的东西都打对了,我的思路是正确的,但是现在我的头文件中有16个错误来自第12-14行,还有1个错误来自我的类文件 我不确定这是否真的是头球还是我在其他地方搞砸了 头文件C++ 如何解决我的C++;头文件?,c++,header,C++,Header,这个程序的目标是从1到365取一个整数,并将其转换为一个月和一天。例2=一月二日,365=十二月三十一日。我以为我把所有的东西都打对了,我的思路是正确的,但是现在我的头文件中有16个错误来自第12-14行,还有1个错误来自我的类文件 我不确定这是否真的是头球还是我在其他地方搞砸了 头文件 #ifndef DAYOFYEAR_H #define DAYOFYEAR_H class DayOfYear { private: int day; public: DayOfYear()
#ifndef DAYOFYEAR_H
#define DAYOFYEAR_H
class DayOfYear
{
private:
int day;
public:
DayOfYear();
static int daysAtEndOfMonth[];
static string monthName[];
void print();
void setDay(int day) { this->day = day; };
};
#endif
课程
#include "DayOfYear.h"
#include <iostream>
#include <string>
using namespace std;
DayOfYear::DayOfYear() {
}
int DayOfYear::daysAtEndOfMonth[] = {
31, 59, 90,
120, 151, 181,
212, 243, 273,
304, 334, 365
};
string DayOfYear::monthName[] = { "January", "February",
"March", "April",
"May", "June"
"July", "August",
"September", "October",
"November", "December"
};
void DayOfYear::print() {
int month = 0;
while (daysAtEndOfMonth[month] < day)
month = (month + 1) % 12;
if (month == 0) {
cout << "\nJanuary" << day << endl << endl;
}
else
{
cout << endl << monthName[month] << " " << day - daysAtEndOfMonth[month - 1]
<< "\n\n";
};
};
#包括“DayOfYear.h”
#包括
#包括
使用名称空间std;
DayOfYear::DayOfYear(){
}
int DayOfYear::daysAtEndOfMonth[]={
31, 59, 90,
120, 151, 181,
212, 243, 273,
304, 334, 365
};
字符串DayOfYear::monthName[]={“一月”、“二月”,
“三月”、“四月”,
“五月”、“六月”
“七月”、“八月”,
“九月”、“十月”,
“11月”、“12月”
};
void dayof year::print(){
整月=0;
while(daysAtEndOfMonth[月]<日)
月=(月+1)%12;
如果(月份==0){
cout头文件需要#包括
,并且必须在头文件中引用std::string
(使用<代码>使用命名空间STD;在C++文件中不够好,它在头文件中非常糟糕,它将整个STD命名空间引入到包括头在内的每个文件中的全局命名空间中。只需说“不”)< /P>
其他意见:
daysAtEndOfMonth
和monthName
应为const
- 下一次,包括错误消息(这个错误很明显,下一个不会)
- 下一次,放一个与错误相符的注释标记-我不会花时间倒计时到第45行
您的头文件需要#包括,并且您必须在头文件中引用std::string
(使用<代码>使用命名空间STD;在C++文件中不够好,它在头文件中非常糟糕,它将整个STD命名空间引入到包括头在内的每个文件中的全局命名空间中。只需说“不”)< /P>
其他意见:
daysAtEndOfMonth
和monthName
应为const
- 下一次,包括错误消息(这个错误很明显,下一个不会)
- 下一次,放一个与错误相符的注释标记-我不会花时间倒计时到第45行
请列出您所遇到的实际错误,但我的水晶球告诉我这正是您所需要的。第12-14行写得不正确。(当您说“您有错误”时,唯一可能给出的答案是“那么您一定做错了什么事”。)投票因未能证明MVCE而关闭。对静态数组使用constexpr,将它们的值放在标题中,然后感谢我。请包括您得到的实际错误,但我的水晶球告诉我这正是您需要的。第12-14行写得不正确。(当您说“您有错误”时)唯一可以给你的答案是“那么你一定是做错了什么”。)投票决定关闭MVCE。对静态数组使用constexpr,将它们的值放在标题中,稍后感谢我。
#include <iostream>
#include <string>
#include "DayOfYear.h"
using namespace std;
int main() {
int day;
DayOfYear DayOfYearObj;
cout << "This program will convert an integer between 1 and 365 to a Month/Day format"
<< endl << endl;
cout << "Please enter an integer from 1 to 365:";
cin >> day;
//set day
DayOfYearObj.setDay(day);
//display
DayOfYearObj.print();
return 0;
}