Class declaration – cppreference.com
Aus cppreference.com
<metanoindex/>
Syntax
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) | (seit 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
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
Notes
(seit C++11) A default value can be assigned to data members inside the class body (ie: not necessarily in a constructor)
Siehe auch
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 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() { //... }