Class declaration
Aus cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Inhaltsverzeichnis |
[Bearbeiten]Syntax
classidentifier{ class_body} object_list; | (1) | ||||||||
classidentifier: ancestor_list{ class_body} object_list; | (2) | ||||||||
classidentifier; | (3) | ||||||||
classidentifierfinalopt_ancestors_and_body | (4) | (seit C++11) | |||||||
[Bearbeiten]Class Body
A list of member and friend declarations and access specifiers:
public: | (1) | ||||||||
protected: | (2) | ||||||||
private: | (3) | ||||||||
friendfriend_declaration | (4) | ||||||||
member_declaration | (5) | ||||||||
staticmember_declaration | (6) | ||||||||
nested_type_declaration | (7) | ||||||||
[Bearbeiten]Ancestor List
A list of classes that have already bee fully defined optionally prefixed with an access specifier
[Bearbeiten]Object List
An optional list of instances of the previously defined class
[Bearbeiten]Erklärung
- 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
[Bearbeiten]Notes
(seit C++11) A default value can be assigned to data members inside the class body (ie: not necessarily in a constructor)
[Bearbeiten]Siehe auch
[Bearbeiten]Beispiel
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 declareddouble x =12.3;// C++11 inline data member initializationstaticconstint sci =1;// this is valid in C++98 as wellpublic:typedef B parent_type; // inline functionvirtual parent_type foo()const{return B();} // non-inline function declaration. needs to be defined externallyvoid bar();} D_obj;// An object of type D is defined // definition of a class method outside the classvoid D::bar(){//...}