第 49 课 · 第 4 阶段: 时态与情态动词
过去完成时
中级Past perfect
构成与用法
had + 过去分词 — 在过去另一时刻之前完成的动作
1.形式
过去完成时 = had + V3,所有主语都一样。缩写形式:I'd、she'd、they'd;否定式 hadn't。
| 所有主语 | |
|---|---|
| 肯定式 | She had left. / She'd left. |
| 否定式 | She hadn't left. |
| 疑问式 | Had she left? |
| 简略回答 | Yes, she had. / No, she hadn't. |
'd 可能是 had,也可能是 would。看后面一个词:'d + V3 = had(I'd forgotten);'d + 动词原形 = would(I'd forget)。另外 'd better = had better。
2.什么时候用
当你已经在讲过去的事,又想再往前推一步时,用过去完成时:这件事发生在过去另一个时刻或事件之前。
1. 发生在过去另一件事之前的事
When I got to the station, the train had already left.
我到车站时,火车已经开走了。
I couldn't pay because I'd left my wallet at home.
我付不了钱,因为我把钱包落在家里了。
2. 和 by the time、before、already 连用:在那个时间点之前已经完成
By the time Mum got home, we had cleaned the whole house.
妈妈到家的时候,我们已经把整个房子打扫干净了。
The bakery had sold out of bread before I got there.
我还没到,面包店的面包就已经卖完了。
3. 到过去某一时刻为止的经历——had never / had ever … before
I'd never seen snow until I went to Sapa last winter.
去年冬天去沙坝之前,我从来没见过雪。
Had you met him before the wedding?
婚礼之前你见过他吗?
4. 转述过去的想法或话语:realised、knew、found out、said、told…(见“间接引语”一课)
I suddenly realised I hadn't turned off the stove.
我突然意识到我没关炉子。
Tom said he had never eaten durian.
汤姆说他从来没吃过榴莲。(他的原话:I have never eaten…)
3.When 后面:一般过去时还是过去完成时?
在 when 后面,换个时态,两件事的先后顺序就变了:
When we arrived, the party started.
我们到的时候,派对开始了。(我们先到,然后派对开始)
When we arrived, the party had started.
我们到的时候,派对已经开始了。(我们到之前派对就开始了)
When I got home, Mum cooked dinner.
我回到家,妈妈就做晚饭了。(我先到家,然后她做饭)
When I got home, Mum had cooked dinner.
我回到家时,妈妈已经做好晚饭了。(我到家时晚饭已经做好了)
先发生的事用 had + V3,后发生的事用一般过去时。不要把 had 放在后发生的事上:When I had arrived, the meeting already started ✗ → When I arrived, the meeting had already started。
4.什么时候不需要用
- 按发生的顺序讲事情 → 用一般过去时就够了:I got up, had a shower and went to work.
- 用 after、before、as soon as 时先后顺序已经很清楚,所以用一般过去时也可以:After I finished / After I had finished my homework, I went out. 想强调第一个动作已经完成时,用 had + V3。
- 不要因为事情发生在很久以前就用过去完成时:I was born in 2000.
After she had finished the report, she sent it to her manager.
她写完报告后,把它发给了经理。(after + had V3 或 after + 一般过去时:都可以)
5.和现在完成时比较,以及相关形式
现在完成时算到现在为止;过去完成时算到过去某一时刻为止。
I'm not hungry. I've just eaten.
我不饿,我刚吃过。(到现在为止)
I wasn't hungry. I'd just eaten.
我当时不饿,我刚吃过。(到那时为止)
- had been + -ing:一直持续到过去某一时刻的活动——We had been walking for three hours when we found a café. 见“过去完成进行时”一课。
- had been + V3(被动):When we came back, our bags had been stolen.
- had + V3 也用来表示与过去事实相反:If I had known, I would have helped(见“第三条件句”一课);I wish I had studied harder.
6.常见错误
When I arrived, everyone has gone home.When I arrived, everyone had gone home.
参照点在过去(arrived)→ 用 had,不用 has。
I hadn't saw him for years.I hadn't seen him for years.
had + V3。
When I had arrived, the meeting already started.When I arrived, the meeting had already started.
had + V3 用在先发生的事上(会议开始)。
The children were tired because they had swam all afternoon.The children were tired because they had swum all afternoon.
swim – swam – swum:had + V3。
She told me she has lost her phone the day before.She told me she had lost her phone the day before.
转述过去说的话 → 时态往后退:has lost → had lost。
I had been born in 2000.I was born in 2000.
不要因为是很久以前的事就用过去完成时。
例句
- When I got to the station, the train had already left.
- Lan couldn't get into her flat because she had left her keys at the office.
- By the time I turned on the TV, Vietnam had scored two goals.
- I didn't recognise Hoa at the party because she had changed so much.
