我正在努力使add_day
函數正常工作,但我遇到了一些麻煩。請注意,我無法對struct
進行任何更改(這非常簡單),因爲練習的重點是使程序按照給定的內容工作。該代碼是課堂問題,增加一天
#include "std_lib_facilities.h"
struct Date{
int y, m, d;
Date(int y, int m, int d);
void add_day(int n);
};
void Date::add_day(int n)
{
d+=n;
}
ostream& operator<<(ostream& os, const Date& d)
{
if(d.m<1 || d.m>12 || d.d<1 || d.d>31) cout << "Invalid date: ";
return os << '(' << d.y
<< ',' << d.m
<< ',' << d.d << ')';
}
int main()
{
Date today(1978,6,25);
today.add_day(1);
cout << today << endl;
keep_window_open();
}
我收到說undefined reference to Date::Date(int,int,int)
鏈接錯誤,但我無法弄清楚什麼是錯的。這似乎是與Date
構造函數有關,但我不知道是什麼。
我也想在行代碼添加明天像
Date tomorrow = today.add_day(1);
但我有一種感覺,因爲add_day是void類型會有一個轉換的問題。
任何幫助將不勝感激 - 謝謝。
P.S.不要擔心在本月底添加日期。這件事將在稍後實施。
一般來說,我們會返回一個const引用而不是複製,相同的功能,但更特別有效地複製費時(這裏沒有太多問題)。 – DeusAduro 2009-07-14 17:40:12