それらが属するクラスのオブジェクトを作成せずにそれらを呼び出すために、いくつかの静的関数を作成しました。静的関数(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内で、静的関数の戻り値をローカル変数に保存し、戻り値の代わりにそれらを使用する必要がありますか?