類
-
介紹類型別的定義。
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;