What is the difference between
void showDist() const { 
} 
and
void showDist() {
}
and what is the benefit of const here?
What is the difference between
void showDist() const { 
} 
and
void showDist() {
}
and what is the benefit of const here?
 
    
    const says that you will not modify any of the member variables of the object (or more correctly *this). Note that this is not the same as const this. const pointers and non-const pointers are incompatible.
If you have a const object, you must provide a const overload.
class Foo
{
public:
    // Remove this and see the compiler error
    void foo() const 
    {
        std::cout << "Const.";
    }
    void foo()
    {
        std::cout << "Non-const.";
    }
};
int main(int argc, char* argv[])
{
    const Foo foo;
    foo.foo();
}
Consider a class X.
The only difference is:
In a non-const member function, the type of this is:
X*
In a const member function, the type of this is:
const X*
That's it.
Because of this, the const member function 
X except for the members that are mutable.const member function of the class X.