每一个 情态动词 都有两种意思,一种是逻辑判断,一种是主观能动,这3个词组 全部用于虚拟语气,虚拟语气代表 说话人在想象/虚拟,所虚拟的事情不一定是和真实情况相反,说话人不知道事实/事实无法确认/甚至和事实相同 都可以用到这3个虚拟语气词组。
分别举例说明,其中会用相同的事件,分别用这3个不同的词组表述,可以看出意思相交之处 有什么区别。
could have 以前的事情可能是什么/怎么样(逻辑推断)/以前本可以干什么(能力/条件)
he was so late for the meeting, i think he could have been overslept.(逻辑判断,可能性)
im sorry u failed in ur test, u could have passed it.(逻辑判断,可能性/能力/条件可以过的)
should have 对之前做的事情提建议(判断当事人怎么做会更好),判断事实已经发生/以前你本应该干什么(责任)
i heard u didnt find what u wanted to buy, u should have called me.(提建议)
if everything goes as it expected, he should have done the work.(判断按计划来的事情已经完成)
im sorry u failed in ur test, u should have passed it.(过了对你有好处/你有责任要过的)
would have 幻想以前的事情一定是什么/会怎么样(逻辑判断)/以前未完成的愿意/想做什么而没做的(意愿)
he was so late for the meeting, i think he would have been overslept.(逻辑判断,假想一定是)
im sorry u failed in ur test, u would have passed it, but...(逻辑判断,假想一定会)
i knew u have been hurt, i would have been seeing u earlier. (未完成的意愿)
可以看到有些情况里,一句话,情态动词的逻辑判断和主观能动的作用,可以同时体现出来,并不冲突。上面有含义交集的地方是:
粗斜体字,当 could have和 would have 仅做逻辑判断的时候,只是肯定性的程度不同而已,could have 是可能 would have 是一定会
黑体字,可以看出同一个事情,同样的句式,分别用这3个词说出来,给人的感受和隐藏含义的不同。
couldhave, 和过去事实相反的虚拟语气中,could have 表如那样,就能怎么样了。
should have 也是虚拟语气中对过去事情的评价。当应该做而没去做的时候,表达你“本应该”的意思。
would have done. 和过去事实相反的虚拟语气中的主句用到, 表 假如当时怎么样,那么将会如何。would是种语法虚词,无太多实质语意。
本回答被提问者采纳