I'm reading about classes and header files in my book right now. It's talking about const definitions in header files saying that you can only define a const with a const expression. What exactly is a const expression? I thought an expression was something that yields a result and/or side effect. Then it says if the const doesn't have a const expression it shouldn't be defined in a header file, instead it should be defined in a source file and then declared in the header file. How can this be if the value you initialize to a const has to be known at compile-time? Is this meaning literals?