# C++ keywords: class

From cppreference.com
< cpp‎ | keyword

### Usage

- declaration of a class

- declaration of a scoped enumeration type

(since C++11)

- In a template declaration, class can 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, `class` can be prepended to the name for disambiguation, resulting in an elaborated type specifier

### Example

Run this code

    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;
    }

    int main()
    {
        Bar Bar(1);
        class Bar Bar2(2); // elaborated type
    }

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/keyword/class&oldid=109109"