你的思考有对的成分,其实Having been told that...这种结构在这里就相当于过去完成时,只是英语里没有Hading 这个用法,所以用Having 来替代。这也是为什么这种句子的主句一般都是过去时态。
When 这句正如曹老师解答的,两个时间比较近,没必要这样用。
Having been told是现在分词完成式(有的语法书称为“现在分词完成体”), asked 是过去分词(过去分词没有完成体形式),都可以表示在谓语动词所示动作发生前已经完成的动作。
所以:
Having been told that some guests were coming, she stopped all morning in that supermarket.可以改为:
When told that some guests were coming, she stopped all morning in that supermarket.
When asked the reason for their success,the kids had two explanation.可以改为:
Having been asked the reason for their success,the kids had two explanation.
第一句stopped 应为 shopped.
第一句作状语的having been told为现在分词完成体被动语态。之所以用完成体,是因为告诉的动作发生在谓语动作之前。第二句是when引导时间状语从句,省略了主语和be, when asked = when the kids were asked. When引导时间状语从句,可以表示主句的动作紧接着从句的动作发生。例如,When he opened the door, he saw Tom. 这个when从句是没有必要用过去完成时的,因为从句和主句的动词衔接发生。如果二个动作之间有较长的时间间隔,则从句就需要用完成体。例如,When he had sold his old house, he moved to Shanghai.
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!