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는 공공 형이기 때문에 변환 문제가있을 것이라는 느낌을 가지고있다.
도움을 주시면 감사하겠습니다. - 감사합니다.
P. 월말에 일을 추가하는 것에 대해 걱정하지 마십시오. 나중에 구현 될 내용입니다.
Date &
은 일반적으로 우리가 대신 사본의 const를 참조, 동일한 기능을하지만, 더 많은 반환 반환해야 시간이 많이 소요되는 복사 작업에 특히 효율적입니다 (여기에 그다지 문제가되지 않습니다). – DeusAduro