gpt4 book ai didi

c++ - 类(class)问题,加一天

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:41 25 4
gpt4 key购买 nike

我正在尝试使 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 类型,所以会有一个转换问题。

如有任何帮助,我们将不胜感激 - 谢谢。

附言不要担心在月底添加天数。这是稍后要实现的事情。

最佳答案

链接器错误是因为您没有定义构造函数。

Date::Date( int yr, int mo, int day ) : y(year), m(month), d(day)
{
}

对于 add_day 问题:您说得对,您需要更改返回类型。它应该返回一个 Date 对象。您可以构造一个新的 Date 对象并返回它并增加日期值,或者只增加日期值并返回 *this。

关于c++ - 类(class)问题,加一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com