may / might have done表示對(duì)已經(jīng)發(fā)生過的情況的肯定推測(cè),語(yǔ)氣稍弱。might have done還可表示“本可能做某事而實(shí)際上沒有做”。如:
She didn''t come on time. She may / might have missed the bus.
He might have given you more help, but he was very busy then.
should / ought to have done表示“本該做某事而實(shí)際上沒有做”,其否定形式表示“本不該做某事而實(shí)際上做了”,通常含有責(zé)備的意思。如:
The flowers have died. I should / ought to have watered them often.
You shouldn''t / ought not to have told them the truth.