C++ language design tutorial