我制作了一些静态函数,以便在不创建它们所属类的任何对象的情况下调用它们。我已将具有静态函数 (NTP.h) 的类的头文件包含到另一个类 (DayNumber) 中。
我想将某些函数的返回值作为 DayNumber 类函数的操作符。我收到未声明 NTP 的错误。这是代码。
头文件:
#include "NTP.h"
class DayNumber{
private:
int _day1YearLoop[];
int _day4YearLoop[];
public:
int Days1YearLoop;
int Days4YearLoop;
DayNumber();
void dayNumberCalc( NTP::getYear(),NTP::getMonth(),NTP::getDate());
virtual ~DayNumber();
bool checkLeapYear(int setYear);
};
#endif
实现 .cpp 文件(部分):
void DayNumber::dayNumberCalc( NTP::getYear(), NTP::getMonth(), NTP::getDate()){
int setYear = NTP::getYear();
int setMonth = NTP::getMonth();
int setDay = NTP::getDate();
//Days that passed from the beginning of the year for the first day each month
int _day1YearLoop[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
//i= _day1YearLoop;
//Days that passed from the beginning of the second year since the 'for'.
//The first day of the running year in a four-years loop.
int _day4YearLoop[]={366,731,1096};
if (checkLeapYear(setYear)){
if (setMonth>2){ //Diorthwsi gia ton mina flebari
Days1YearLoop = *(_day1YearLoop + (setMonth-1)) + setDay + 1;
Days4YearLoop = Days1YearLoop;
}
else{
Days1YearLoop = *(_day1YearLoop+(setMonth-1))+setDay;
为什么会这样?它不应该以这种方式工作吗?
同样在函数 dayNumberCalc 中,我应该将静态函数的返回值保存在局部变量中并使用它们而不是返回值吗?