Defining classes

A class is defined in a statement, and it will define its members in a block with multiple statements enclosed by braces {}. As it's a statement, you have to place a semicolon after the last brace. A class can be defined in a header file (as are many of the C++ Standard Library classes), but you have to take steps to ensure that such files are included only once in a source file. There are, however, some rules about specific items in a class that must be defined in a source file, which will be covered later.

If you peruse the C++ Standard Library, you will see that classes contain member functions and, in an attempt to put all the code for a class into a single header file, this makes the code difficult to read and difficult to understand. This may be justifiable for a library file maintained by a legion of expert C++ programmers, but for your own projects readability should be a key design goal. For this reason, a C++ class can be declared in a C++ header file, including its member functions, and the actual implementation of the functions can be placed in a source file. This makes the header files easier to maintain and more reusable.