11.6 更复杂的例子

最后更新于:2022-04-01 06:23:17

尽管函数转换成成员函数的过程是机械式的,但还是有一些古怪的地方。例如,after函数对两个Time对象进行操作,而不仅仅是一个,我们不能使它俩都成为隐式的。而需要在其中一个对象上调用这个函数,并把另一个对象作为参数传递给它。 在函数中,我们隐式地引用其中一个对象,而继续使用点符号来访问另一对象的实例变量。 ~~~ bool Time::after (const Time& time2) const{ if(hour > time2.hour) return true; if(hour < time2.hour) return false; f(minute > time2.minute) return true; if(minute < time2.minute) return false; if(second > time2.second) return true; return false; } ~~~ 调用此函数: ~~~ if (doneTime.after (currentTime)) { cout << "The bread will be done after it starts." <<endl; } ~~~ 调用过程可以这么理解: “如果done-time在current-time之后,那么...”
';