que tienen la siguiente interfaz de clase:¿Cómo funciona "en cascada"?
class Time
{
public:
Time(int = 0, int = 0, int = 0);
Time &setHour(int);
Time &setMinute(int);
Time &setSecond(int);
private:
int hour;
int minute;
int second;
};
La aplicación está aquí:
Time &Time::setHour(int h)
{
hour = (h >= 0 && h < 24) ? h : 0;
return *this;
}
Time &Time::setMinute(int m)
{
minute = (m >= 0 && m < 60) ? m : 0;
return *this;
}
Time &Time::setSecond(int s)
{
second = (s >= 0 && s < 60) ? s : 0;
return *this;
}
En mi archivo .cpp principal, tengo este código:
int main()
{
Time t;
t.setHour(18).setMinute(30).setSecond(22);
return 0;
}
¿Cómo es posible encadenar estas llamadas de función juntas? No entiendo por qué esto funciona.
oh lo tengo .. 't.setHour (18)' saldrá '(* this)' que se usará para referirse a la próxima función ... – teacher
@teacher: Exactamente. – Goz