The sort of things you're likely to override from Object in Java you're more likely to implement as operators on a class by class basis in C++. So if I wanted a custom test for equality in C++ I'd define and implement operator==:
class A
{
public:
bool operator==( const A &compare_with )
{
}
};
[In C++ you're more likely to implement operator<() instead, but the principle is the same].
The C++ standard library, as far as I know, doesn't provide any support for hashing. The original SGI STL that a fair chunk of the standard library provides some support for hashing of standard library and builtin types. These are usually implemented as template functors (classes that implement operator()) so they're not intrusive (as in clogging up the class's interface) the way they are in Java. So if you want a hash function that operates on strings you'd use:
hash<string> string_hash;
but in most cases you'd just use anonymous objects.
Cheers,
Ash