C++ keyword: class - cppreference.com
From cppreference.com
Usage
- In a template declaration,
classcan be used to introduce type template parameters and template template parameters - If a function or a variable exists in scope with the name identical to the name of a class type,
classcan be prepended to the name for disambiguation, resulting in an elaborated type specifier.
Example
class Foo; // forward declaration of a class class Bar // definition of a class { public: Bar(int i) : m_i(i) {} private: int m_i; }; template<class T> // template argument void qux() { T t; } enum class Pub // scoped enum, since C++11 { b, d, p, q }; int main() { Bar Bar(1); // variable Bar hides type Bar Bar Bar2(2); // compiler error class Bar Bar3(3); // elaborated type }