Most object oriented language implement object as a C pointer but they are abstract and you can not change the value of it. So when you use this/self it is indeed a pointer in most of the cases (some language could have an object table for faster garbage reclamation and other optimization).
For example in Java when you do something like:
Object t = new A();
t = new B();
You are swapping pointer behind the scene. Some language have reintroduce the notion of pointer like Go but you can not do arithmetic with it.
So in a way: no pointer have not disappear from languages they just have been implemented in a better way. The way C have designe pointer is not good at all but it serves its purpose. It is not good for many reason, one is: it break invariant of you program. I do not mean to avoid it, of course they are crucial for C.