都有区别。
1、can have done 和could have done 的区别
can have done是表示应该做某事而没有做,所以既然知道没有做,那肯定是已经发生了。
could have done 表示本能做而实际未做,是虚拟语气.
2、can't have done和couldn't have done的区别
can't have done(不可能做过)是must have done(一定做过)的否定形式.
couldn't have done(可能没做过)是may have done(有可能做过)的否定形式.
一般认为can't have done有80%以上的把握。而couldn't have done则委婉的多,只有50%左右的把握。
拓展资料:
He would not die If I could have helped him。
如果当时我能帮助他,他就不会死。
He could not have gone anywhere,I just saw him.
他不可能去哪里的,我刚刚都还看见他.
Mr. Smith can't have gone to Beijing, for I saw him in the library just now。
史密斯先生不可能去北京了,我刚才还在图书馆见过他。
参考资料: