C++ class that mandates const objects
<p>First let me ask a general question:</p>

<ul>
<li>It seems to me that C++ is a language whose point is to provide tons of capabilities, to give the programmer the greatest possible flexibility in doing things in whatever way he finds suitable. In other words, it's a flexible language that allows the programmer to express himself in more ways than probably any other language that I've seen. Is this right?</li>
</ul>

<p>Then a specific one:</p>

<ul>
<li>Why doesn't C++ seem to support creating classes whose objects can be only <code>const</code>? In other words, classes where you get a compile-time error if you try to create a non-<code>const</code> object of it. This seems like a natural thing to do in many cases, yet C++ doesn't allow it. 
What is the reason behind this? (Sure, I can make all the members <code>const</code>, but that is somewhat of a copout.)</li>
</ul>
