类
-
介绍类类型的定义。
class foo { int x; public: int get_x(); void set_x(int new_x); };
-
介绍一个*详细的类型说明符,*它指定以下名称是类类型的名称。如果已经声明了类名,即使被其他名称隐藏也可以找到它。如果类名尚未声明,则为前向声明。
class foo; // elaborated type specifier -> forward declaration class bar { public: bar(foo& f); }; void baz(); class baz; // another elaborated type specifer; another forward declaration // note: the class has the same name as the function void baz() class foo { bar b; friend class baz; // elaborated type specifier refers to the class, // not the function of the same name public: foo(); };
-
在模板的声明中引入类型参数。
template <class T> const T& min(const T& x, const T& y) { return b < a ? b : a; }
-
在模板模板参数的声明中,关键字
class
位于参数名称之前。由于模板模板参数的参数只能是类模板,因此这里使用class
是多余的。但是,C++的语法需要它。template <template <class T> class U> // ^^^^^ "class" used in this sense here; // U is a template template parameter void f() { U<int>::do_it(); U<double>::do_it(); }
-
注意,意义 2 和意义 3 可以组合在同一声明中。例如:
template <class T> class foo { }; foo<class bar> x; // <- bar does not have to have previously appeared.
Version >= C++ 11
-
在枚举的声明或定义中,将枚举声明为作用域枚举 。
enum class Format { TEXT, PDF, OTHER, }; Format f = F::TEXT;