Hi the way I look at it is : It's the object which is const, not the class. If the object is const, then it's const variables must be initialised, and any functions violating the constness of the object result in a compile error.
But what if the object is not const? I would suggest it's still a good idea to mark any function not altering the state of the object as const, unless you have anything which might be mutable