can have done 和could have done 的区别

问题描述:

can have done 和could have done 的区别
can have done是表示应该做某事而没有做,所以既然知道没有做,那肯定是已经发生了,就是过去时啊,但是could have done也是过去时.why?

could have done 表示本能做而实际未做,是虚拟语气.
can have done 和could have done 还能表示对过去的推测,常用于否定句和问句中.