Class declaration
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
目录 |
[编辑] 语法
class identifier { class_body } object_list ;
|
(1) | ||||||||
class identifier : ancestor_list { class_body } object_list ;
|
(2) | ||||||||
class identifier ;
|
(3) | ||||||||
class identifier final opt_ancestors_and_body | (4) | (C++11 起) | |||||||
[编辑] Class Body
A list of member and friend declarations and access specifiers:
public: | (1) | ||||||||
protected: | (2) | ||||||||
private: | (3) | ||||||||
friend friend_declaration | (4) | ||||||||
member_declaration | (5) | ||||||||
static member_declaration | (6) | ||||||||
nested_type_declaration | (7) | ||||||||
[编辑] Ancestor List
A list of classes that have already bee fully defined optionally prefixed with an access specifier
[编辑] Object List
An optional list of instances of the previously defined class
[编辑] 解释
- Defines a class and its member
- Defines a class inheriting other classes
- Forwards declares a class
- Defines a class that cannot be derived from ( see final )
If friend or member functions have their body defined inside the class body, they are implicitly inlined
[编辑] 注释
(C++11 起) A default value can be assigned to data members inside the class body (ie: not necessarily in a constructor)
[编辑] 另请参阅
[编辑] 示例
class C; class D : public B // B needs to be defined { private: C *ptr_c; // a pointer/reference to C can be used as C has been forward declared double x = 12.3; // C++11 inline data member initialization static const int sci = 1; // this is valid in C++98 as well public: typedef B parent_type; // inline function virtual parent_type foo() const { return B(); } // non-inline function declaration. needs to be defined externally void bar(); } D_obj; // An object of type D is defined // definition of a class method outside the class void D::bar() { //... }