gpt4 book ai didi

c++ - 重载运算符>>,将一个参数传递给对象而不是三个

转载 作者:太空狗 更新时间:2023-10-29 21:17:27 27 4
gpt4 key购买 nike

我有一个日期类型的对象“d”。我正在尝试使用重载运算符从用户那里只接受一个参数,而不是对象具有的三个参数。换句话说,我希望程序能够从用户那里获取输入,并且能够只更改“month_”数据成员,然后将该数据成员传递给“incMon()”,以便月份和年根据用户希望仅使用“month_”数据成员增加日期的月份进行相应调整。

如何调整重载运算符和 incMon() 以允许此过程发生?

这就是我的。

void Date::read(istream & is)
{
unsigned month;

is >> month;

month_ = month;

}


istream & operator>>(istream & is, Date & d)
{
d.read(is);
return is;
}

最佳答案

我将原始问题解释为:“如何使给定的主要功能起作用?”

最小侵入性的方式,将是

istream & operator>>(istream & is, Date & d)
{
int num = 0;
is >> num;
d.incrementMonth(d, num);
return is;
}

虽然我想强调,这个解决方案会导致相当意外的代码(读取对象与读取 int 以递增)。

关于c++ - 重载运算符>>,将一个参数传递给对象而不是三个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32755326/

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