You're not comparing those objects, and your operator is not even being invoked.
You are comparing
pointers
to those objects. Obviously that comparison will always fail as two objects cannot exist in the same place at the same time.
I imagine you meant to write either of the following:
Fox f(1, 2);
Wolf w(1, 2);
Organizm* o1 = &f;
Organizm* o2 = &w;
const bool ok = (*o1 == *o2);
or, better:
Fox f(1, 2);
Wolf w(1, 2);
const Organizm& o1 = f;
const Organizm& o2 = w;
const bool ok = (o1 == o2);
or, simply:
Fox f(1, 2);
Wolf w(1, 2);
// implicit conversions are a thing!
const bool ok = (f == w);