一个虚拟语气的句子if i hadn't stood under the ladder to catch you when you fall,you wouldn't be smiling now.这句是对过去的虚拟,主句为什么不能是 couldn't have smiled now.

问题描述:

一个虚拟语气的句子
if i hadn't stood under the ladder to catch you when you fall,you wouldn't be smiling now.这句是对过去的虚拟,主句为什么不能是 couldn't have smiled now.

应该是固定的用would的吧!!

因为有now,主从句时态不一致,属于混合型虚拟条件句。
类似,如果有then等表示过去时态的词,就用过去式对应的虚拟。

表示与过去事实相反的情况
从句:主语+had done 主句:主语+should/would/could/might+have done
有时,虚拟条件句中,结果主句和条件从句的谓语动作若不是同时发生时,虚拟语气的形式应作相应的调整.从句的动作与过去事实相反,而主句的动作与现在或现在正在发生的事实不符.
如:If I had worked hard at school,I would be an engineer,too.如果我在学校学习刻苦的话,我现在也会成为一个工程师了
smiling在这里是动名词放在介词be后面

因为前半句是对过去的虚拟,过去如果没有接住你的话,而主句则是对现在的虚拟,你现在就不会笑了。请注意主句中的now一词提示了时间。
在虚拟语气的句子中,前后句的虚拟时间是可以不相同的。
希望这样可以帮助您。